{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [],
   "source": [
    "from copy import deepcopy\n",
    "\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "from scipy import stats\n",
    "\n",
    "from sklearn.metrics import mean_absolute_percentage_error\n",
    "\n",
    "import dowhy\n",
    "from dowhy import CausalModel\n",
    "\n",
    "from sklearn.linear_model import LinearRegression, LogisticRegression, LassoCV\n",
    "from sklearn.ensemble import RandomForestRegressor, GradientBoostingRegressor\n",
    "\n",
    "from lightgbm import LGBMRegressor, LGBMClassifier\n",
    "\n",
    "import networkx as nx\n",
    "\n",
    "from tqdm import tqdm\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "plt.style.use('fivethirtyeight')\n",
    "\n",
    "import graphviz"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'0.8'"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dowhy.__version__"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [],
   "source": [
    "COLORS = [\n",
    "    '#00B0F0',\n",
    "    '#FF0000',\n",
    "    '#B0F000'\n",
    "]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Chapter 09\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Matching"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Read the data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [],
   "source": [
    "earnings_data = pd.read_csv(r'./data/ml_earnings.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAFMAAAAUCAYAAADx7wHUAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8/fFQqAAAACXBIWXMAABJ0AAASdAHeZh94AAAEUklEQVR4nO3Ye+jfUxgH8Ndv84frprZmGWJjaJRYIYy5zErEJH9hRESGDI30eJTLwtzmkkvWSqHWyKW5riy3oa2ROw1/mM0mtwjz88f5fPP9ffb5/vz2+/02knd9e/o+57zPOZ/nPM95nnO6uru7/Y/BwZB/egH/JWzRpMzM+ZiK3SLip827pH8/MvMAvIWzI+LBlr6rHuaZORFLMTMi5lS6ETgJx2FfjMGveAcP4aGI+KPDxDvhWmVzRuArPI6MiG8HizMQZOZsTMR4jMTP+Lyac25ErG3gLMRB2CMifqQ5zK/H97inTXcK7seBeAO3YQH2wQN4LDO7GiYch7dxprJBt+IzXITXqk0aMGcQcAm2wfO4HQ/jd1yDFZm5cwPnBozGjJaiR5hn5ngcjQci4ue2po9wAp5u98DMvFL54JMxTTFwO+7GKMyIiDvbeHOqD7gO5w0CZ6AYFhG/1JWZeR2uxCyc394WEUsz8wOcm5mzI2J93TPPQhcerRFfiogn66EcEatwb/X3iNpCxmIKVuKu2jyBn3BaZm4zEM5goMmQFR6r5B4d2h/BLooDbhDmR2M9Xt+ItfxWyd9r+iMr+VzDJvyAV7C1cu4MhLMpcXwlV3Rof6WSx9AW5tVu74f3+5rBM3MLnF79XVRr3rOSH3Wgf6x44Xi8OADOoCEzZ2JbDFcS0qGKIW/sQHmzkpPo6ZljMFTJnH3FjUoSeiYinq21Da/kdx24Lf32A+QMJmYqx8nFiiEXYUpErGnqHBHf4Rcl1HsYs5Ul+1R6ZOYMXIoPcFo/Ft7K/htzBesPp8+IiNER0aVk6WkYi2WZuX8vtHVKOdXDmK3sveXfTZqZFyglxHuYHBHrGrq1vGh4QxsMq/XrL2fQERFfR8RC5UgZgfm9dN9KZbt2Y66uZK91XGZejLl4VzHkqg5dP6zk+A7trQzZfj72h7PJEBGfKw4zITNH1tszc4hy5KympzG/whp/JYENkJlXKEX0csWQqzv1xeJKTqkmbR9nOxyi7OjrA+RsauxYyfUNbXsqR89y2owZEd14GSMzc/c6KzOvVhLO2zgqIr7pbQUR8Smew664oD6ccuOY31459IeTmfMyszszp/e2nk7IzL0yc3SDfkhVtI/Cqx2usa0SbTEbPnQsUG4zx+KTtoHPUO7K67EEMzKzPvDKiJhX052PV3FHZh6F95Ur6WQlVK9qWODGcloOUa9z+4qpuCkzX8anWIsdcLiSgFbhnA7cKYpNnmhfSAsL8LW/ascWdqvkUKVsiIbf9PpMladNxDzFIJdiHO7AwU0PCP3g7Isf8HSHD/47vID7lFwxDZcpDrVOiYYJEfFenZSZw3EinoqIL2l+NZqlPHbsHxHL+rnAzYLM3F7xpFsi4vLNPPeFygZPioglNL8a3YovlLD+t+Mw5To7Z3NOmplbKY8fC1qGpMEzq86TlDPq5v8fhzdEZu6NUzEvIla29H8CoUyzHvt+H18AAAAASUVORK5CYII=\n",
      "text/latex": [
       "$\\displaystyle \\left( 200, \\  3\\right)$"
      ],
      "text/plain": [
       "(200, 3)"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "earnings_data.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>age</th>\n",
       "      <th>took_a_course</th>\n",
       "      <th>earnings</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>19</td>\n",
       "      <td>False</td>\n",
       "      <td>110579.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>28</td>\n",
       "      <td>False</td>\n",
       "      <td>142577.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>22</td>\n",
       "      <td>True</td>\n",
       "      <td>130520.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>25</td>\n",
       "      <td>True</td>\n",
       "      <td>142687.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>24</td>\n",
       "      <td>False</td>\n",
       "      <td>127832.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   age  took_a_course  earnings\n",
       "0   19          False  110579.0\n",
       "1   28          False  142577.0\n",
       "2   22           True  130520.0\n",
       "3   25           True  142687.0\n",
       "4   24          False  127832.0"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "earnings_data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th>earnings</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>age</th>\n",
       "      <th>took_a_course</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">19</th>\n",
       "      <th>False</th>\n",
       "      <td>111110.875000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>True</th>\n",
       "      <td>123488.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">20</th>\n",
       "      <th>False</th>\n",
       "      <td>115227.142857</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>True</th>\n",
       "      <td>125633.285714</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">21</th>\n",
       "      <th>False</th>\n",
       "      <td>117114.900000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>True</th>\n",
       "      <td>130155.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">22</th>\n",
       "      <th>False</th>\n",
       "      <td>120226.363636</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>True</th>\n",
       "      <td>131437.222222</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">23</th>\n",
       "      <th>False</th>\n",
       "      <td>124460.900000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>True</th>\n",
       "      <td>134654.333333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">24</th>\n",
       "      <th>False</th>\n",
       "      <td>126878.583333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>True</th>\n",
       "      <td>137564.250000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">25</th>\n",
       "      <th>False</th>\n",
       "      <td>130812.800000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>True</th>\n",
       "      <td>142715.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">26</th>\n",
       "      <th>False</th>\n",
       "      <td>134004.250000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>True</th>\n",
       "      <td>144552.800000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">27</th>\n",
       "      <th>False</th>\n",
       "      <td>139035.600000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>True</th>\n",
       "      <td>148744.333333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">28</th>\n",
       "      <th>False</th>\n",
       "      <td>141580.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>True</th>\n",
       "      <td>152485.333333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">29</th>\n",
       "      <th>False</th>\n",
       "      <td>145248.600000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>True</th>\n",
       "      <td>152694.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">30</th>\n",
       "      <th>False</th>\n",
       "      <td>150333.750000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>True</th>\n",
       "      <td>159586.400000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">31</th>\n",
       "      <th>False</th>\n",
       "      <td>152532.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>True</th>\n",
       "      <td>163592.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">32</th>\n",
       "      <th>False</th>\n",
       "      <td>157515.200000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>True</th>\n",
       "      <td>169854.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">33</th>\n",
       "      <th>False</th>\n",
       "      <td>162453.500000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>True</th>\n",
       "      <td>170020.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">34</th>\n",
       "      <th>False</th>\n",
       "      <td>165694.200000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>True</th>\n",
       "      <td>178922.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">35</th>\n",
       "      <th>False</th>\n",
       "      <td>172134.250000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>True</th>\n",
       "      <td>180404.500000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>36</th>\n",
       "      <th>False</th>\n",
       "      <td>175240.666667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">37</th>\n",
       "      <th>False</th>\n",
       "      <td>181514.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>True</th>\n",
       "      <td>187627.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>38</th>\n",
       "      <th>False</th>\n",
       "      <td>185546.333333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>39</th>\n",
       "      <th>False</th>\n",
       "      <td>187253.666667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">41</th>\n",
       "      <th>False</th>\n",
       "      <td>201729.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>True</th>\n",
       "      <td>207676.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">42</th>\n",
       "      <th>False</th>\n",
       "      <td>203029.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>True</th>\n",
       "      <td>214445.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>43</th>\n",
       "      <th>False</th>\n",
       "      <td>210243.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>45</th>\n",
       "      <th>True</th>\n",
       "      <td>233035.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>48</th>\n",
       "      <th>False</th>\n",
       "      <td>239510.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                        earnings\n",
       "age took_a_course               \n",
       "19  False          111110.875000\n",
       "    True           123488.000000\n",
       "20  False          115227.142857\n",
       "    True           125633.285714\n",
       "21  False          117114.900000\n",
       "    True           130155.000000\n",
       "22  False          120226.363636\n",
       "    True           131437.222222\n",
       "23  False          124460.900000\n",
       "    True           134654.333333\n",
       "24  False          126878.583333\n",
       "    True           137564.250000\n",
       "25  False          130812.800000\n",
       "    True           142715.000000\n",
       "26  False          134004.250000\n",
       "    True           144552.800000\n",
       "27  False          139035.600000\n",
       "    True           148744.333333\n",
       "28  False          141580.000000\n",
       "    True           152485.333333\n",
       "29  False          145248.600000\n",
       "    True           152694.000000\n",
       "30  False          150333.750000\n",
       "    True           159586.400000\n",
       "31  False          152532.000000\n",
       "    True           163592.000000\n",
       "32  False          157515.200000\n",
       "    True           169854.000000\n",
       "33  False          162453.500000\n",
       "    True           170020.000000\n",
       "34  False          165694.200000\n",
       "    True           178922.000000\n",
       "35  False          172134.250000\n",
       "    True           180404.500000\n",
       "36  False          175240.666667\n",
       "37  False          181514.000000\n",
       "    True           187627.000000\n",
       "38  False          185546.333333\n",
       "39  False          187253.666667\n",
       "41  False          201729.000000\n",
       "    True           207676.000000\n",
       "42  False          203029.000000\n",
       "    True           214445.000000\n",
       "43  False          210243.000000\n",
       "45  True           233035.000000\n",
       "48  False          239510.000000"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "earnings_data.groupby(['age', 'took_a_course']).mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle 6695.57088285231$"
      ],
      "text/plain": [
       "6695.570882852306"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Compute naive estimate \n",
    "treatment_avg = earnings_data.query('took_a_course==1')['earnings'].mean()\n",
    "cntrl_avg = earnings_data.query('took_a_course==0')['earnings'].mean()\n",
    "\n",
    "treatment_avg - cntrl_avg"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Define the graph"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Construct the graph (the graph is constant for all iterations)\n",
    "nodes = ['took_a_course', 'earnings', 'age']\n",
    "edges = [\n",
    "    ('took_a_course', 'earnings'),\n",
    "    ('age', 'took_a_course'),\n",
    "    ('age', 'earnings')\n",
    "]\n",
    "\n",
    "# Generate the GML graph\n",
    "gml_string = 'graph [directed 1\\n'\n",
    "\n",
    "for node in nodes:\n",
    "    gml_string += f'\\tnode [id \"{node}\" label \"{node}\"]\\n'\n",
    "\n",
    "for edge in edges:\n",
    "    gml_string += f'\\tedge [source \"{edge[0]}\" target \"{edge[1]}\"]\\n'\n",
    "    \n",
    "gml_string += ']'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Instantiate the CausalModel \n",
    "model = CausalModel(\n",
    "    data=earnings_data,\n",
    "    treatment='took_a_course',\n",
    "    outcome='earnings',\n",
    "    graph=gml_string\n",
    ")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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EMmBfH19admyJZMnTyY+Pp5//etfzJ8/nypVqvCvf/2L6OhoLl++bPVMEckhFAMiOVxAQADh4eF8+eWX7N69mxYtWjB16lRCQkJ47rnnWL58OW632+qZIpKNKQZEcpFChQrx+OOPEx0dzaZNm6hWrRojRowgNDSUgQMH8s033+h0yyLyJ4oBkVyqRIkSPPfccyxbtowlS5Zw55138u9//5vq1avz9ttvs2fPHn2GgYgAigERr3DPPfcwYMAANm7cyFdffYXNZuORRx4hLCyMUaNG8d1331k9UUQspBgQ8SI2m40qVarw1ltvsXv3bsaNG8eZM2do2bIlzZo149NPP+X06dNWzxSRLKYYEPFSNpuNunXrMmrUKOLi4nj99dfZu3cv9erVo0OHDvz3v/8lISHB6pkikgUUAyKCw+GgadOmfPrpp8THx/PUU0+xfPlyqlWrxsMPP0xkZCRJSUlWzxSRTKIYEJHfyZMnDx06dGDGjBns3buXDh06MGvWLEJCQnj66adZvHgxV69etXqmiGQgxYCI/KUCBQrw8MMP43K52LZtG3Xr1uWjjz4iJCSEf//736xbt06HKorkAooBEbkpxYoV46mnnmLRokWsWrWKe+65h9dee40qVaowZMgQdu7cqUMVRXIoxYCI3LLSpUvTr18/1q1bx9y5c8mbNy89e/bk/vvvZ8SIERw6dMjqiSJyCxQDInJb7r33Xl5//XW2b9/OZ599xoULF2jfvj0PPPAAH3/8MSdOnLB6oojcgGJARDKEzWbjvvvuY8SIEezbt493332XQ4cO0ahRIx566CGmTp3Kzz//bPVMEbkOxYCIZDi73c4DDzzA+PHjiY+Pp2/fvqxfv56aNWvStWtX5syZw8WLF62eKSK/UgyISKby9/enTZs2fP755+zfv58uXboQGRlJ5cqV6dmzJ/Pnzyc5OdnqmSJeTTEgIlkmX758dOnShTlz5rBz504aN27MpEmTCAkJ4YUXXmDVqlWkpqZaPVPE6ygGRMQShQsXpkePHsyfP5/169cTEhLCO++8Q6VKlXj11VfZsmWLDlUUySKKARGx3F133cULL7zAypUrWbBgAYULF+b555+nZs2aDBs2jLi4OKsniuRqigERyVbKly/Pq6++yubNm5kxYwYpKSkYhkH9+vUZM2YMx44ds3qiSK6jGBCRbMlms1G9enWG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\n",
      "text/plain": [
       "<Figure size 576x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "model.view_model()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Get the estimand"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Estimand type: nonparametric-ate\n",
      "\n",
      "### Estimand : 1\n",
      "Estimand name: backdoor\n",
      "Estimand expression:\n",
      "       d                         \n",
      "────────────────(E[earnings|age])\n",
      "d[took_a_course]                 \n",
      "Estimand assumption 1, Unconfoundedness: If U→{took_a_course} and U→earnings then P(earnings|took_a_course,age,U) = P(earnings|took_a_course,age)\n",
      "\n",
      "### Estimand : 2\n",
      "Estimand name: iv\n",
      "No such variable(s) found!\n",
      "\n",
      "### Estimand : 3\n",
      "Estimand name: frontdoor\n",
      "No such variable(s) found!\n",
      "\n"
     ]
    }
   ],
   "source": [
    "# Get the estimand\n",
    "estimand = model.identify_effect()\n",
    "\n",
    "print(estimand)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Estimate the effect"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "distance_matching\n"
     ]
    }
   ],
   "source": [
    "# Get estimate (Matching)\n",
    "estimate = model.estimate_effect(\n",
    "    identified_estimand=estimand,\n",
    "    method_name='backdoor.distance_matching',\n",
    "    target_units='ate',\n",
    "    method_params={'distance_metric': 'minkowski', 'p': 2})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAGwAAAAQCAYAAADzhpp3AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8/fFQqAAAACXBIWXMAABJ0AAASdAHeZh94AAAEPUlEQVR4nO2ZbWiWZRTHf7OF4TIDK/ahWClZFuWUsCQwlyGlUS4S+qCUkCYVWi1s2Mt//6AXoVbOCoeF1vJbpB+iYmWjF1sJ+SmSNKe9YUYuZZZm4PpwXY/e3j73nje3EPzDw9l9n+t/znVfL+e6zllVf38/p3HqoDr5YPtO4AagHpgAjATWSZqbZcD2hcDTwM3AaGA3sAGwpD/ztC/HRzmcWcAS4IpEv74BWiV1Z/EKwfY84K34uEDS6yeDY3sXUJdhYo+kWoBhKcUTwIOEgfm1iI6MJQzCfGAz8BLQQxiobtuj89BK8lFmv5YD7wGTgA+BFcAW4HZgk+3MiS5g9yJgJXBgkDj7Aef5vZBrUJ0iPAz8AvxAWNFdBRy8BlwALJa0MtHJ1mjrGWBRhT5K4tiuBR4F9gBXS/o9oWsAPiFEhLeL8Ju0WwWsAfYC70YfJ5uzT1LLQA2OmzBJRwfCdqHOjAFmALuAV1NqAQuBebabJP1Vjo8yOXWEyPF1crJydmz3AecX5fh4LAZuBKZFOVicAZEOiaUg14FOSUeSCkl9wCZgBHBdBT7KwXbgMDDZ9nlJhe2phPPv41IM2h4PPA+skPTZYHGA4bbn2l5me4ntBttnJBukQ2IpuCzKbRn67YQdOA7YWIGfkiCp1/ZjQCvwne0NhJA0FrgN+Ai4r1h7tquBDuAnYNlgcSJqIy+JnbbnS/oUKttho6Lcn6HPvT+3Ah9lQdLLwB2EBbkAaAbmAD8Da9OhsgCeAiYC90g6OIicNcB0wqTVAFcB7cDFwAe2J0BlO6wQqqIc8kTP9lLgWaANeAX4DbgceA5YZ7te0tIi7Ewm7JAXi00FyuEASEofzt8Ci2wfAJqAFqCxkgnL7aBRGfpzUu2GBLanAcuB9ZIeSai22G4khPAm26sk9QxgJxfWtgFPFum7ZE4RWEWYsKlQ2Q77PspxGfpLo8w64wYLt0Z5wtVf0t+2NwONhJCVOWHA2Rz7tkMZt9PVtlcTLhYPlckphFz4roHKJiw3IDNsD0veFG2PBK4HDgJfVeCjHAyPMuvqnnt/uICdf4A3MnSTCBP+BWHhdlfAKYQpUfZABRMmaYftTsJN8AFCNp+DCSuiPZmDDRE+J1RFFtpul3S0MmL7FsJCOgR8mSTFqs2ZwA5J/8bLwr35HNhuIQz+m8kyUzmcqLsS2C2pN/W+jnAGQ0z007XE2cDs+Fgb5RTba+Pff0hKZuv3Ez68zfZ0YCtwLdBACIWP5+l4qT5K5bxDyLNuArbaXk+4dIwnhMsqoFnS3lTXNhKS7ksIxYChxByg2XYXsBPoI6Qhs4CzgPeJ5an0DqsH7k69GxN/AD+SKK/EXXYNx4q/MwlF1jZC8beXE1GSj1I5ko7YnknY9XcRzqsRQC/hw9skdebp1/+JLkJeO5EQAmuAfYTw2QF0SOoHqDr975VTC/8BnkfEAiepQwsAAAAASUVORK5CYII=\n",
      "text/latex": [
       "$\\displaystyle 10118.445$"
      ],
      "text/plain": [
       "10118.445"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "estimate.value"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [],
   "source": [
    "refutation = model.refute_estimate(\n",
    "    estimand=estimand, \n",
    "    estimate=estimate,\n",
    "    method_name='random_common_cause')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Refute: Add a random common cause\n",
      "Estimated effect:10118.445\n",
      "New effect:10322.0735\n",
      "p value:0.26\n",
      "\n"
     ]
    }
   ],
   "source": [
    "print(refutation)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Inverse Probability Weighting (IPW)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "propensity_score_weighting\n",
      "0.04811580602068774\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\aleks\\anaconda3\\envs\\causal_book_py38\\lib\\site-packages\\sklearn\\utils\\validation.py:1111: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n"
     ]
    }
   ],
   "source": [
    "pd.read_csv('data/ch_01_drug_data.csv')\n",
    "\n",
    "gender = [1] * (24 + 56 + 17 + 25) + [0] * (3 + 39 + 6 +74)\n",
    "clot = [1] * 24 + [0] * 56 + [1] * 17 + [0] * 25 + [1] * 3 + [0] * 39 + [1] * 6 + [0] * 74\n",
    "drug = [0] * (24 + 56) + [1] * (17 + 25) + [0] * 42 + [1] * 80\n",
    "\n",
    "drug_data = pd.DataFrame(dict(\n",
    "    gender=gender,\n",
    "    clot=clot,\n",
    "    drug=drug\n",
    "))\n",
    "\n",
    "# Construct the graph (the graph is constant for all iterations)\n",
    "nodes_drug = ['drug', 'clot', 'gender']\n",
    "edges_drug = [\n",
    "    ('drug', 'clot'),\n",
    "    ('gender', 'drug'),\n",
    "    ('gender', 'clot')\n",
    "]\n",
    "\n",
    "# Generate the GML graph\n",
    "gml_string_drug = 'graph [directed 1\\n'\n",
    "\n",
    "for node in nodes_drug:\n",
    "    gml_string_drug += f'\\tnode [id \"{node}\" label \"{node}\"]\\n'\n",
    "\n",
    "for edge in edges_drug:\n",
    "    gml_string_drug += f'\\tedge [source \"{edge[0]}\" target \"{edge[1]}\"]\\n'\n",
    "    \n",
    "gml_string_drug += ']'\n",
    "\n",
    "# Instantiate the CausalModel\n",
    "model_drug = CausalModel(\n",
    "    data=drug_data,\n",
    "    treatment='drug',\n",
    "    outcome='clot',\n",
    "    graph=gml_string_drug\n",
    ")\n",
    "\n",
    "# Identify effect\n",
    "estimand_drug = model_drug.identify_effect()\n",
    "\n",
    "# Get estimate (IPW weighting)\n",
    "estimate_drug = model_drug.estimate_effect(\n",
    "    identified_estimand=estimand_drug,\n",
    "    method_name='backdoor.propensity_score_weighting',\n",
    "    target_units='ate'\n",
    ")\n",
    "\n",
    "print(estimate_drug.value)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "propensity_score_weighting\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\aleks\\anaconda3\\envs\\causal_book_py38\\lib\\site-packages\\sklearn\\utils\\validation.py:1111: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n"
     ]
    }
   ],
   "source": [
    "# Get estimate (IPW weighting)\n",
    "estimate = model.estimate_effect(\n",
    "    identified_estimand=estimand,\n",
    "    method_name='backdoor.propensity_score_weighting',\n",
    "    target_units='ate'\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle 10313.5668311203$"
      ],
      "text/plain": [
       "10313.566831120348"
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "estimate.value"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle 0.0313566831120348$"
      ],
      "text/plain": [
       "0.03135668311203481"
      ]
     },
     "execution_count": 47,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(estimate.value - 10e3) / 10e3"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## S-Learner: The Lone Ranger"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [],
   "source": [
    "def plot_effect(effect_true, effect_pred, figsize=(10, 7), ylim=(5000, 22000)):\n",
    "    plt.figure(figsize=figsize)\n",
    "    plt.scatter(effect_true, effect_pred, color=COLORS[0])\n",
    "    plt.plot(np.sort(effect_true), np.sort(effect_true), color=COLORS[1], alpha=.7, label='Perfect model')\n",
    "    plt.xlabel('$True\\ effect$', fontsize=14, alpha=.5)\n",
    "    plt.ylabel('$Predicted\\ effect$', fontsize=14, alpha=.5)\n",
    "    plt.ylim(ylim[0], ylim[1])\n",
    "    plt.legend()\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Read the data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Train set\n",
    "earnings_interaction_train = pd.read_csv(r'./data/ml_earnings_interaction_train.csv')\n",
    "\n",
    "# Test set\n",
    "earnings_interaction_test = pd.read_csv(r'./data/ml_earnings_interaction_test.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle \\left( \\left( 5000, \\  4\\right), \\  \\left( 100, \\  4\\right)\\right)$"
      ],
      "text/plain": [
       "((5000, 4), (100, 4))"
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "earnings_interaction_train.shape, earnings_interaction_test.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>age</th>\n",
       "      <th>python_proficiency</th>\n",
       "      <th>took_a_course</th>\n",
       "      <th>earnings</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>23</td>\n",
       "      <td>0.632318</td>\n",
       "      <td>True</td>\n",
       "      <td>139267.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>20</td>\n",
       "      <td>0.602551</td>\n",
       "      <td>False</td>\n",
       "      <td>115569.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>21</td>\n",
       "      <td>0.518225</td>\n",
       "      <td>False</td>\n",
       "      <td>119142.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>25</td>\n",
       "      <td>0.945161</td>\n",
       "      <td>False</td>\n",
       "      <td>130291.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>30</td>\n",
       "      <td>0.636251</td>\n",
       "      <td>True</td>\n",
       "      <td>164209.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   age  python_proficiency  took_a_course  earnings\n",
       "0   23            0.632318           True  139267.0\n",
       "1   20            0.602551          False  115569.0\n",
       "2   21            0.518225          False  119142.0\n",
       "3   25            0.945161          False  130291.0\n",
       "4   30            0.636251           True  164209.0"
      ]
     },
     "execution_count": 51,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Train \n",
    "earnings_interaction_train.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>age</th>\n",
       "      <th>python_proficiency</th>\n",
       "      <th>took_a_course</th>\n",
       "      <th>true_effect</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>30</td>\n",
       "      <td>0.223877</td>\n",
       "      <td>True</td>\n",
       "      <td>11120.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>23</td>\n",
       "      <td>0.394152</td>\n",
       "      <td>True</td>\n",
       "      <td>11970.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>37</td>\n",
       "      <td>0.214638</td>\n",
       "      <td>True</td>\n",
       "      <td>11073.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>21</td>\n",
       "      <td>0.869069</td>\n",
       "      <td>True</td>\n",
       "      <td>14345.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>41</td>\n",
       "      <td>0.833934</td>\n",
       "      <td>True</td>\n",
       "      <td>14169.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   age  python_proficiency  took_a_course  true_effect\n",
       "0   30            0.223877           True      11120.0\n",
       "1   23            0.394152           True      11970.0\n",
       "2   37            0.214638           True      11073.0\n",
       "3   21            0.869069           True      14345.0\n",
       "4   41            0.833934           True      14169.0"
      ]
     },
     "execution_count": 52,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Test\n",
    "earnings_interaction_test.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Define the graph"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Construct the graph (the graph is constant for all iterations)\n",
    "nodes = ['took_a_course', 'python_proficiency', 'earnings', 'age']\n",
    "edges = [\n",
    "    ('took_a_course', 'earnings'),\n",
    "    ('age', 'took_a_course'),\n",
    "    ('age', 'earnings'),\n",
    "    ('python_proficiency', 'earnings')\n",
    "]\n",
    "\n",
    "# Generate the GML graph\n",
    "gml_string = 'graph [directed 1\\n'\n",
    "\n",
    "for node in nodes:\n",
    "    gml_string += f'\\tnode [id \"{node}\" label \"{node}\"]\\n'\n",
    "\n",
    "for edge in edges:\n",
    "    gml_string += f'\\tedge [source \"{edge[0]}\" target \"{edge[1]}\"]\\n'\n",
    "    \n",
    "gml_string += ']'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Instantiate the CausalModel \n",
    "model = CausalModel(\n",
    "    data=earnings_interaction_train,\n",
    "    treatment='took_a_course',\n",
    "    outcome='earnings',\n",
    "    effect_modifiers='python_proficiency',\n",
    "    graph=gml_string\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "model.view_model()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Get the estimand"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Estimand type: nonparametric-ate\n",
      "\n",
      "### Estimand : 1\n",
      "Estimand name: backdoor\n",
      "Estimand expression:\n",
      "       d                         \n",
      "────────────────(E[earnings|age])\n",
      "d[took_a_course]                 \n",
      "Estimand assumption 1, Unconfoundedness: If U→{took_a_course} and U→earnings then P(earnings|took_a_course,age,U) = P(earnings|took_a_course,age)\n",
      "\n",
      "### Estimand : 2\n",
      "Estimand name: iv\n",
      "No such variable(s) found!\n",
      "\n",
      "### Estimand : 3\n",
      "Estimand name: frontdoor\n",
      "No such variable(s) found!\n",
      "\n"
     ]
    }
   ],
   "source": [
    "# Get the estimand\n",
    "estimand = model.identify_effect()\n",
    "\n",
    "print(estimand)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Estimate the effect"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\aleks\\anaconda3\\envs\\causal_book_py38\\lib\\site-packages\\tqdm\\auto.py:22: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n",
      "  from .autonotebook import tqdm as notebook_tqdm\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n"
     ]
    }
   ],
   "source": [
    "# Get estimate (S-Learner)\n",
    "estimate = model.estimate_effect(\n",
    "    identified_estimand=estimand,\n",
    "    method_name='backdoor.econml.metalearners.SLearner',\n",
    "    target_units='ate',\n",
    "    method_params={\n",
    "        'init_params': {\n",
    "            'overall_model': LGBMRegressor(n_estimators=500, max_depth=10)\n",
    "        },\n",
    "        'fit_params': {}\n",
    "    })"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle 12547.0682056748$"
      ],
      "text/plain": [
       "12547.068205674783"
      ]
     },
     "execution_count": 58,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "estimate.cate_estimates.mean()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Refute"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 115,
   "metadata": {
    "collapsed": true
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n"
     ]
    }
   ],
   "source": [
    "refutation = model.refute_estimate(\n",
    "    estimand=estimand, \n",
    "    estimate=estimate,\n",
    "    method_name='random_common_cause')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 116,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Refute: Add a random common cause\n",
      "Estimated effect:12547.068205674783\n",
      "New effect:12544.19837098707\n",
      "p value:0.8999999999999999\n",
      "\n"
     ]
    }
   ],
   "source": [
    "print(refutation)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 117,
   "metadata": {
    "collapsed": true
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n"
     ]
    }
   ],
   "source": [
    "refutation = model.refute_estimate(\n",
    "    estimand=estimand, \n",
    "    estimate=estimate,\n",
    "    method_name='placebo_treatment_refuter')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 118,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Refute: Use a Placebo Treatment\n",
      "Estimated effect:12547.068205674783\n",
      "New effect:14.934216852362804\n",
      "p value:0.84\n",
      "\n"
     ]
    }
   ],
   "source": [
    "print(refutation)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Predict on test data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Compute predictions\n",
    "effect_pred = model.causal_estimator.effect(earnings_interaction_test.drop(['true_effect', 'took_a_course'], axis=1))\n",
    "\n",
    "# Get the true effect\n",
    "effect_true = earnings_interaction_test['true_effect'].values"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle 0.0502732092578003$"
      ],
      "text/plain": [
       "0.050273209257800315"
      ]
     },
     "execution_count": 60,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Compute the error \n",
    "mean_absolute_percentage_error(effect_true, effect_pred)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 114,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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GEh0dDSxsbHccccd3HHHHfzpT38CwG63s3btWkaNGsWgQYMYN24cmzZtMh7bMFu7ZcsWbrnlFgYNGsRvfvMbhg4dCsCtt95KeHg4u3fvBmDfvn1897vfZfDgwQwfPpz/9//+H+fOnTOuZ7fbeemll/jGN75BVFQUV111FU8//TQA1157LQCTJk0iPDycm266qcXX09Cnd955h+9+97sMGjSIG2+8kX/+8598+eWXTJ06lZiYGKZPn86RI0ccHvub3/yG6667DovFwnXXXcfGjRsdzhcUFHDTTTcRHR3NN7/5TTIzM5s9/8mTJ/nP//xPEhISSEhI4M477yQ/P78DI9I5mhkWERERj9I3I6PN80E2G35+3Tefd6FRkNoVQUFB1NbWArBq1Sref/99nn/+eZKTk/nss8946KGHCA8PZ9q0acZjnn76aVatWsVLL72E2Wxm/PjxjB07ljfeeIMxY8YQERHBv/71L2bOnMnjjz/OSy+9xNmzZ1m+fDk//OEPeeONNwD4yU9+woYNG/jpT3/Kt7/9bUpKSsjJyQHgo48+YvLkybzzzjtcffXV9OnTp83XsXr1ap555hmGDh3K//t//4/777+fyMhInnjiCSwWC4sWLWLZsmVGcL9t2zYeffRRnnnmGSZPnsxf//pXHnnkEaKiokhPT8dms/H973+fsLAwPvjgA6qqqnj88cepqam5PAYXLnDLLbcwevRo/vSnP9GnTx9eeuklbrvtNrKysujbt2+3jFFLFAyLiIiIdNHnn3/Oli1bmDBhApWVlaxbt453332XcePGATB06FA+//xzXnvtNYdgeMGCBdx2223G96WlpQBEREQQHR0NwC9/+UtmzJjBj370I6PdCy+8wPjx4zl9+jTBwcH8+te/ZvXq1cyZMweAxMRERo8eDUBkZCQAAwYMMK7Zlh/84AdMnToVgB/+8IfMnj2bN954g/HjxwNw//3389hjjxntf/WrX5GRkcGCBQsASE5OJjs7m7Vr15Kens6uXbv46quv2L9/P3FxcUB9wJ2enm5c45133sFut/PrX//aWDP4F7/4BcnJyezYsYMZM2a02+/OUjAsIiIi0gkffvghQ4YMoa6ujtraWr773e+yZs0acnNzqa6uZtasWQ6bQdTW1hIfH+9wjeuuu67d59m/fz8FBQX84Q9/MI7Z7XYADh8+jNlspqam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EydOBCA1NZUpU6awZMkS1q5di91uZ8mSJUybNk23XkRERER8hMcFw9/4xjd46623+MlPfsLPfvYzYmNj+fGPf8z8+fONNg899BBVVVU8+uijlJWVcf311/Puu+/Sv39/o80zzzyD2Wxm3rx5VFdXM378eF555RXMZrPR5tVXX2XZsmXMnDkTgPT0dNasWdNzL1ZERERE3MpUVlZmb7+ZuJq7k8el+2gsvYvG03toLL2HxtK7uHs8PS5nWERERESkpygYFhERERGfpWBYRERERHyWgmERERER8VkKhkVERETEZykYFhERERGfpWBYRERERHyWgmERERER8VkKhkVERETEZykYFhERERGfpWBYRERERHyWgmERERER8VkKhkVERETEZykYFhERERGfpWBYRERERHyWgmERERER8VmmsrIyu7s7ISIiIiLiDpoZFhERERGfpWBYRERERHyWgmERERER8VkKhkVERETEZykYFhERERGfpWC4k/bs2cPs2bMZPnw44eHhvPXWWw7n7XY7q1ev5sorr2TQoEHcdNNNHDx40KFNTU0Njz76KImJicTExDB79mwKCwsd2pSVlbFgwQLi4+OJj49nwYIFlJWVObQ5fvw4GRkZxMTEkJiYyGOPPcbFixdd8rq9UXtjuXXrVmbOnElSUhLh4eHs3r272TU0lp6hrbGsra3lqaeeYty4ccTExJCamsr8+fM5fvy4wzU0lp6jvX+bq1at4lvf+hYxMTEkJCRw6623sm/fPoc2Gk/P0N5YNvbQQw8RHh7OSy+95HBcY+kZ2hvLRYsWER4e7vA1ZcoUhzaeNpYKhjupsrKSq666imeffZbg4OBm59euXcu6det47rnn+Oijj7BYLMyYMYPz588bbZYvX862bdvYsGED27dv5/z582RkZGC1Wo028+fPJycnh82bN7NlyxZycnJ44IEHjPNWq5WMjAwqKirYvn07GzZsYOvWraxYscK1b4AXaW8sL1y4wOjRo/npT3/a6jU0lp6hrbG8cOEC+/fvZ+nSpXz88cf87ne/o7CwkFmzZlFXV2e001h6jvb+baakpPD888/zt7/9jczMTBISEpg1axbFxcVGG42nZ2hvLBu8//77/OMf/2Dw4MHNzmksPYMzYzlx4kRyc3ONr82bNzuc97Sx1DrD3WDIkCGsWbOGu+++G6ifFb7yyiu5//77Wbp0KQBVVVWkpKTwX//1X8ybN4/y8nKSk5NZt24dd955JwAnTpxg5MiRbNmyhbS0NHJzcxkzZgyZmZmMHTsWgL1795Kens5nn31GSkoKf/nLX7jzzjs5cOAAsbGxAGzatInFixeTl5dHaGioG96R3qvpWDZWWlpKUlIS27Zt48YbbzSOayw9U1tj2eCrr75i7Nix7NmzhxEjRmgsPZgz43nu3Dni4+N55513SEtL03h6qNbG8tixY0ybNo333nuPWbNmsWDBAn70ox8B+j3rqVoay0WLFnHmzBk2bdrU4mM8cSw1M+wCR48epaioiMmTJxvHgoODGTdunHELLzs7m9raWoc2sbGxpKamGm2ysrLo168fY8aMMdqMHTuWkJAQhzapqanGDwJAWloaNTU1ZGdnu/JlyiUay96r4U5NeHg4oLHszS5evMjGjRsJDQ1l5MiRgMazN6mrq2P+/PksXbqU1NTUZuc1lr3L3r17SU5O5vrrr2fx4sWcPn3aOOeJY+nfmRcpbSsqKgLAYrE4HLdYLJw6dQqA4uJizGYzkZGRzdo03OIrLi4mMjISk8lknDeZTAwcONChTdPniYyMxGw2O9wqFNfRWPZOFy9e5IknnmD69OkMGTIE0Fj2RpmZmdx3331cuHCBQYMG8Yc//IGoqChA49mbrF69moiICO67774Wz2sse48pU6Zwyy23kJCQwLFjx1i1ahW33noru3btIjAw0CPHUsGwCzUeRKhPn2h6rKmmbVpq70ybto5Lz9BYeq66ujoWLFhAeXk5b7/9drvtNZae68Ybb2T37t2UlpayceNG7r33Xv7yl78waNCgVh+j8fQsn3zyCb/73e9aLE5uj8bS89x+++3G30eMGMGoUaMYOXIkO3bs4NZbb231ce4cS6VJuEB0dDRAs08mJSUlxqeYqKgorFYrpaWlbbYpKSnBbr+c1m232yktLXVo0/R5SktLsVqtzT4xiWtoLHuXuro67rvvPv71r3/x/vvvM2DAAOOcxrL3CQkJITExkW9961v86le/IiAggDfeeAPQePYWu3fv5uuvvyY1NZXIyEgiIyM5fvw4Tz31FFdddRWgsezNBg8eTExMDAUFBYBnjqWCYRdISEggOjqanTt3Gseqq6vZu3evkf8yatQoAgICHNoUFhYaSeMAo0ePpqKigqysLKNNVlYWlZWV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\n",
      "text/plain": [
       "<Figure size 720x504 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_effect(\n",
    "    effect_true=effect_true,\n",
    "    effect_pred=effect_pred,\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### What happens when your dataset is small?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Instantiate the CausalModel \n",
    "model_small = CausalModel(\n",
    "    data=earnings_interaction_train.sample(100),\n",
    "    treatment='took_a_course',\n",
    "    outcome='earnings',\n",
    "    effect_modifiers='python_proficiency',\n",
    "    graph=gml_string\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n"
     ]
    }
   ],
   "source": [
    "# Get estimate (S-Learner)\n",
    "estimate = model_small.estimate_effect(\n",
    "    identified_estimand=estimand,\n",
    "    method_name='backdoor.econml.metalearners.SLearner',\n",
    "    target_units='ate',\n",
    "    method_params={\n",
    "        'init_params': {\n",
    "            'overall_model': LGBMRegressor(n_estimators=500, max_depth=10)\n",
    "        },\n",
    "        'fit_params': {}\n",
    "    })"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Compute predictions\n",
    "effect_pred = model_small.causal_estimator.effect(earnings_interaction_test.drop(['true_effect', 'took_a_course'], axis=1))\n",
    "\n",
    "# Get the true effect\n",
    "effect_true = earnings_interaction_test['true_effect'].values"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle 0.394044503987839$"
      ],
      "text/plain": [
       "0.39404450398783925"
      ]
     },
     "execution_count": 64,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Compute the error \n",
    "mean_absolute_percentage_error(effect_true, effect_pred)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x504 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_effect(\n",
    "    effect_true=effect_true,\n",
    "    effect_pred=effect_pred,\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## T-Learner: Together We Can Do More"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Estimate the effect"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n"
     ]
    }
   ],
   "source": [
    "# Get estimate (T-Learner)\n",
    "estimate = model.estimate_effect(\n",
    "    identified_estimand=estimand,\n",
    "    method_name='backdoor.econml.metalearners.TLearner',\n",
    "    target_units='ate',\n",
    "    method_params={\n",
    "        'init_params': {\n",
    "            'models': [\n",
    "                LGBMRegressor(n_estimators=200, max_depth=10),\n",
    "                LGBMRegressor(n_estimators=200, max_depth=10)\n",
    "            ]\n",
    "        },\n",
    "        'fit_params': {}\n",
    "    })"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle 12512.5589121351$"
      ],
      "text/plain": [
       "12512.558912135146"
      ]
     },
     "execution_count": 67,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "estimate.cate_estimates.mean()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Predict on test data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Compute predictions\n",
    "effect_pred = model.causal_estimator.effect(earnings_interaction_test.drop(['true_effect', 'took_a_course'], axis=1))\n",
    "\n",
    "# Get the true effect\n",
    "effect_true = earnings_interaction_test['true_effect'].values"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle 0.0813365927834967$"
      ],
      "text/plain": [
       "0.0813365927834967"
      ]
     },
     "execution_count": 69,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Compute the error \n",
    "mean_absolute_percentage_error(effect_true, effect_pred)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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jSU+Pp4777yTO++8kz//+c8A2O12Vq1axbBhw+jXrx+jRo1iw4YNxmMbZ2s3bdrErbfeSr9+/fj1r3/NwIEDAbjtttuIjIxkx44dAOzevZvvfOc79O/fn8GDB/Pf//3fnD171rie3W7npZde4mtf+xoxMTFcc801PP300wBcf/31ANx8881ERkZyyy23NHs/jX16++23+c53vkO/fv246aab+Ne//sUXX3zBhAkTiIuLY9KkSRw6dMjhsb/+9a+54YYbsFgs3HDDDaxfv97h/IEDB7jllluIjY3l61//Ojk5OU2e//jx4/znf/4nSUlJJCUlMX36dPbv39+OEekYzQyLiIiIV+mZldXq+RCbjYAA183nnb8sSO2MkJAQ6urqAMjOzubdd9/l+eefJzU1lU8//ZSHH36YyMhIJk6caDzm6aefJjs7m5deegmz2czo0aMZOXIkr7/+OiNGjCAqKop///vfTJ06lSeeeIKXXnqJM2fOsGTJEr73ve/x+uuvA/DDH/6QdevW8aMf/YhvfetblJaWkp+fD8AHH3zAuHHjePvtt7n22mvp0aNHq/exYsUKnnnmGQYOHMh///d/88ADDxAdHc2yZcuwWCzMnz+fxYsXG8H9li1beOyxx3jmmWcYN24cf/vb33j00UeJiYkhMzMTm83GPffcQ0REBO+99x7V1dU88cQT1NbWXhqD8+e59dZbGT58OH/+85/p0aMHL730Erfffju5ubn07NnTJWPUHAXDIiIiIp302WefsWnTJsaMGUNVVRWrV6/mnXfeYdSoUQAMHDiQzz77jFdffdUhGJ47dy6333678feysjIAoqKiiI2NBeBnP/sZU6ZM4fvf/77R7oUXXmD06NGcOnWK0NBQfvGLX7BixQpmzpwJQHJyMsOHDwcgOjoagD59+hjXbM1//dd/MWHCBAC+973vMWPGDF5//XVGjx4NwAMPPMDjjz9utP/5z39OVlYWc+fOBSA1NZW8vDxWrVpFZmYmH374IV999RV79uwhISEBaAi4MzMzjWu8/fbb2O12fvGLXxhrBv/0pz8lNTWVbdu2MWXKlDb73VEKhkVEREQ64P3332fAgAHU19dTV1fHd77zHVauXElBQQE1NTVMmzbNYTOIuro6EhMTHa5xww03tPk8e/bs4cCBA/zhD38wjtntdgAOHjyI2WymtraWMWPGuOS+hgwZYvw5Jiam2WNVVVWcP3+enj17UlBQwN133+1wjW9+85v85S9/AaCgoIC4uDgjEAb4+te/7jC7v2fPHg4fPkx8fLzDdc6fP8/Bgwddcl8tUTAsIiIi0gGjRo1i1apVBAYG0r9/f4KCgoCG3FuAt956yyEABAgMdAy9wsLC2nwem83GrFmzeOihh5qc69+/P//+9787egvNarwPuLSz2+X9bjxms9maHLtc47HGwL01NpuNoUOH8qtf/arJuaioKCd73jEKhkVERMSrtJXDW1NTQ0hIiId607KePXuSnJzc5Hh6ejrBwcEcPXrUJbO1119/PV9++WWzz3X583300UekpKQ0Od+YI2y1Wjvdl5ae/5NPPjFSNAB27drF1VdfDcDVV1/N8ePHOXbsmDHz+9lnnzkE09dffz2bNm2iT58+REZGuqWfLdFqEiIiIiIu1Lt3b77//e/z5JNP8sYbb3DgwAHy8/P51a9+xWuvvdbu6z388MP885//ZOHChUbKRE5ODo888ojxfPPmzePpp5/mN7/5DQcPHuSzzz5j3bp1AFgsFkJDQ/nb3/5GSUkJFRUVLrxb+P73v8+GDRtYu3Yt+/fvZ82aNWzcuJEFCxYADUvQXXXVVcybN4/8/Hxyc3P5wQ9+4DDbfOeddxITE8N//Md/8PHHH3Po0CF27tzJ0qVL3b6ihIJhERERERdbunQpTzzxBD//+c8ZOXIkU6ZMYfPmzSQlJbX7Wtdeey1bt27lyJEjTJ48mW9/+9v88Ic/xGKxGG2eeuopHnnkEX784x8zfPhwZs2axfHjx4GGFIfnnnuON954g6uvvpr/+I//cNl9AkyePJmVK1fyi1/8ghEjRvDKK6/wwgsvGAVyAQEB/OY3v8FmszF+/HjmzZvHokWLCA4ONq7Rs2dPtm7dysCBA7nvvvsYPnw48+fPp7y83O0zxaby8vK2EznE7QoLC0lLS+vqbogLaCx9i8bTd2gsvVNFRQURERHteoy3pEmIa7hqPDvybwk0MywiIiIifkzBsIiIiIj4LQXDIiIiIuK3FAyLiIiIiN9SMCwiIiIifkvBsIiIiHQpZ3YoE2lNZ/4NKRgWERGRLhMWFkZ5ebkCYumU8+fPd3h5Nm3HLCIiIl0mMDCQ3r17c/bsWacfc/bsWcLDw93YK/EkV4xnYGCgwyYe7Xpsp55ZREREpJMCAwPbtVlCSUkJCQkJbuyReFJXj6fSJERERETEbykYFhERERG/pWBYRERERPyWgmERERER8VsKhkVERETEbykYFhERERG/pWBYRERERPyWgmERERER8VsKhkVERETEbykYFhERERG/5dFg+Cc/+Qk333wzCQkJpKSkkJWVxRdffOHQxm63s2LFCq6++mr69evHLbfcwpdffunQpra2lscee4zk5GTi4uKYMWMGRUVFDm3Ky8uZO3cuiYmJJCYmMnfuXMrLyx3aHD16lKysLOLi4khOTubxxx/nwoULbrl3EREREfE+Hg2GP/74Y+6//362bdvG5s2bCQwM5Lvf/S5nzpwx2qxatYrVq1fz3HPP8cEHH2CxWJgyZQrnzp0z2ixZsoQtW7awbt06tm7dyrlz58jKysJqtRpt5syZQ35+Phs3bmTTpk3k5+fz4IMPGuetVitZWVlUVlaydetW1q1bx+bNm1m6dKlnXgwRERER6XKBnnyyd955x+Hva9asITExkU8++YTMzEzsdjsvv/wyjzzyCLfffjsAL7/8MmlpaWzatInZs2dTUVHBG2+8werVq7n55puN6wwdOpQPP/yQjIwMCgoKeP/998nJyWHEiBEAvPjii2RmZlJYWEhaWhoffPABX375JXv37iU+Ph6Ap59+mgULFvDkk08SHh7uwVdGRERERLpCl+YMV1ZWYrPZiIyMBODw4cMUFxczbtw4o01oaCijRo1i9+7dAOTl5VFXV+fQJj4+nvT0dKNNbm4uvXr1MgJhgJEjRxIWFubQJj093QiEATIyMqitrSUvL89dtywiIiIiXsSjM8NXeuKJJxg6dCjDhw8HoLi4GACLxeLQzmKxcOLECQBKSkowm81ER0c3aVNSUmK0iY6OxmQyGedNJhN9+/Z1aHPl80RHR2M2m402zSksLOzIrTrFndcWz9JY+haNp+/QWPoOjaVvced4pqWltXq+y4LhH/zgB3zyySfk5ORgNpsdzl0exEJDUd2Vx650ZZvm2jvTprXj0PYL2lGN6RvS/WksfYvG03doLH2HxtK3dPV4dkmaxJIlS3j77bfZvHkzAwcONI7HxsYCNJmZLS0tNWZxY2JisFqtlJWVtdqmtLQUu91unLfb7ZSVlTm0ufJ5ysrKsFqtTWaMRURERMQ3eTwYXrx4MZs2bWLz5s1cddVVDueSkpKI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jTz//PPGVz7QMFv85JNPsmnTJmpqahg9ejQvvPCCQ2XkmTNnWLx4MX/5y18AyMzMZOXKlUb1OzQsOr1o0SL+93//l5CQEKZNm0Z2djbBwcHuewF8SFtj+eabb/Jf//VfTc4vXryYJUuWABpLb9HaWD7xxBNcf/31zT5u9erVxtJAGkvv0dp4vvDCCzzwwAN89tlnnD59mj59+nDDDTfw6KOP8vWvf91oq/H0Dm39P3uloUOHOiytBhpLb9HaWP7kJz/h7rvvJj8/n4qKCmJjY7nppptYunSpwzh521gqGBYRERERv6WcYRERERHxWwqGRURERMRvKRgWEREREb+lYFhERERE/JaCYRERERHxWwqGRURERMRvKRgWEREREb+lHehERMQpeXl57Nq1i7Nnz3LdddeRmZnZ7DERke5EwbCIiAcdPHiQ3/3ud622mTx5MkOHDvVQj5xTVlbGtm3b+O53v0tcXBzBwcHNHnOFDz74gFOnTpGVleWS64mItEbBsIiIB8XHxztsMbt+/XoGDx7M8OHDjWOhoaFNHmez2QgI6LrMtsLCQiwWC+np6a0ec4Xjx4+TmJjo0muKiLRE2zGLiHSRmpoafvrTnzJlyhSHgPLs2bOsXr2a22+/nby8PIqKipgwYQLh4eFs3LiRRx99FLPZDEBFRQW/+MUvmDt3LtHR0cbjP/roI/bv34/dbicpKYkJEybQq1evFvvS2mPWrFnD6dOnjbZXXXUVpaWlTY7dcccdTj33+fPn+d///V8KCwupqakhKiqKjIwMEhMTeeGFF7BarUbbvn378sADD3T+xRYRaYFmhkVEusjJkyex2+3069fP4XhJSQkAn3zyCWPGjKFPnz4EBweTn59P3759jUC4sW1QUBB9+vQBoLy8nNdff53rrruOe+65B6vVyl//+le2bdvGHXfc0Ww/2nrMPffcw29+8xuuvfZarr/+eoKCgqivr29yzJnnPnv2LK+//jr9+/dnypQphIWFcfToUXr06EFAQAAzZ87ktdde49577yU8PNzhXkVE3EHBsIhIFykuLqZnz55EREQ0OR4YGMiUKVOIiopyOB4TE9OkbUxMDCaTCYCcnByuv/56xowZY7T59re/zTvvvNNiP9p6THBwMOXl5cTHxxszvGazucmxP/zhD20+d05ODjExMUydOtXo8+X3WFVVRXBwMP379zfOi4i4k4JhEZEucvLkSWJjY5scLykpISUlxSFIbDx+/fXXNzlmsViAhpSJgwcPcuzYMf7xj38YbWw2G0FBQc32wZnHnDp1CpvN5tDXK485c52Kigr279/Pfffd12Kge/LkSSwWiwJhEfEYBcMiIl2kuLiYq666qsnxkpISbrzxRodjdXV1nD59usnM8PHjxxk1apTxuODgYGbPnt3kmi0V3znzmOLiYiIiIggJCXHo++XHnL1OQEBAk7SQK/vT2nkREVdTMCwi0gUuXLjA6dOnm8wMX7hwgTNnzjQ5Xl5ejs1mM3KDAY4cOcK5c+eMADkgIIC6ujrCwsLo0aOHU/1w5jElJSVN+nPlMWeuYzabsdlsXLhwocVl2EpKSkhOTnaq7yIirqAd6EREukBbxXNXBp+hoaGYTCZOnjwJwIkTJ/jLX/6CyWQyguG4uDhCQkLYsmULJ0+e5MyZMxw8eJBt27Zhtze/cJAzj2ktV7k91+nfvz+hoaHk5ORw6tQpysrKyMvLo7i42LiOzWbj9OnTnDt3jpqamna/riIi7aWZYRGRLlBcXExISAiRkZEOx0+dOkWfPn2azK726tWLMWPGsHXrVt577z0SEhIYPHgwX3zxhdE2NDSU6dOns337dt566y1sNhuRkZEMHjy4xRzcth5jt9s5deoUI0aMMB7T3DFnnrtnz57ccccdbN++nddff91ImUhNTTWuM3r0aD788ENyc3MZNmwYkyZN6tTrLCLSFq0zLCIiIiJ+S2kSIiIiIuK3FAyLiIiIiN9SMCwiIiIifkvBsIiIiIj4LQXDIiIiIuK3FAyLiIiIiN9SMCwiIiIifkvBsIiIiIj4LQXDIiIiIuK3/j/AUmQ2HS2lpgAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 720x504 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_effect(\n",
    "    effect_true=effect_true,\n",
    "    effect_pred=effect_pred,\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## X-Learner: A Step Further"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Estimate the effect"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n"
     ]
    }
   ],
   "source": [
    "# Get estimate (X-Learner)\n",
    "estimate = model.estimate_effect(\n",
    "    identified_estimand=estimand,\n",
    "    method_name='backdoor.econml.metalearners.XLearner',\n",
    "    target_units='ate',\n",
    "    method_params={\n",
    "        'init_params': {\n",
    "            'models': [\n",
    "                LGBMRegressor(n_estimators=50, max_depth=10),\n",
    "                LGBMRegressor(n_estimators=50, max_depth=10)\n",
    "            ],\n",
    "            'cate_models': [\n",
    "                LGBMRegressor(n_estimators=50, max_depth=10),\n",
    "                LGBMRegressor(n_estimators=50, max_depth=10)\n",
    "            ]\n",
    "        },\n",
    "        'fit_params': {},\n",
    "    })"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n"
     ]
    }
   ],
   "source": [
    "# X-Learner with just one specified model - equivalent to the cell above\n",
    "estimate = model.estimate_effect(\n",
    "    identified_estimand=estimand,\n",
    "    method_name='backdoor.econml.metalearners.XLearner',\n",
    "    target_units='ate',\n",
    "    method_params={\n",
    "        'init_params': {\n",
    "            'models': LGBMRegressor(n_estimators=50, max_depth=10),\n",
    "        },\n",
    "        'fit_params': {},\n",
    "    })"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle 12564.9199353707$"
      ],
      "text/plain": [
       "12564.91993537066"
      ]
     },
     "execution_count": 84,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "estimate.cate_estimates.mean()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Predict on test data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Compute predictions\n",
    "effect_pred = model.causal_estimator.effect(earnings_interaction_test.drop(['true_effect', 'took_a_course'], axis=1))\n",
    "\n",
    "# Get the true effect\n",
    "effect_true = earnings_interaction_test['true_effect'].values"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAANAAAAAQCAYAAABnTPHAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8/fFQqAAAACXBIWXMAABJ0AAASdAHeZh94AAAIfElEQVR4nO2be7BXVRXHPzxSGRREFO9kRMBIKlDoKIop7/ABWVD0hwMBTRCjExGQkaaLr42Fk7x8NCk6oOlMEIWD8lBUJkpIZnxEigkjYtoEJohzEYgQ+mPtc++5557zu7+z7/3zfmd+s39n77XXY//2Y+21zq/NyZMnaUUrWhGH9tkKSZ8D7gSuBboC/waeBGRmH5VhXoaXpLuBS4E+wNnAEeDdQH+/me2vIOdqYCZwJXAWcAD4O7DYzNbFypHUFRgLjAb6A+cBxwLvZcAyMztRxThMBB4Lj1PN7OEcmjbAFGAa0BdoB7wV5DxgZp+2hP1l6WP0iuyzB+hRYOI+M6sJdJMDn0o4YWbtYugzOo0GfghcRP38fRlYaGZbAdpmOvQOBFOAbcAiYHdgsjVMqKoQwetHQEdgI7AEeAI4DswDtkvqXiDnZ8BmYDCwAVgAPAV0AYbmdCkjZzywFLgceAlYDPwB6Ac8DKwMk6XSOHQH7gMOVaIDHgUeAXoCK4LcU4KOK4rklLU/Yrxi9IqyBfgYUM7nnhTNawU0Al4INOubQQ/UbbRPA5fg47QEeAX4OvCipAnQ+AT6NdANmGFm96WYLcQn3l3A9ALjsyjLq5OZHc0x5C7gVuCnwE2ZtvHAz4HngHFmVptp/0yOXmXk7ARuANamTxpJt+KbwjeBcfiiaoQwUZYB+4E/AnMK6L4BTATeAQaa2Ycp/VcGOZOA5c2xP4K+tF6xtgQcNLN5OfV1MLPX8EXRCJK2hq8PxdKH+hr8t9oHfMnMPki1DcMX3p3A421TDb2AUcAe4IGs3sAnwERJHQutawavvEkdsDKU52dktAXuBg4DN2YnQ+D5v5y6quWY2Qtm9lTWTTOzvcBvwuPQAn4AM4Dh+Cn8SQW6caFckEy4lP63h8cfpDuUtT9yvErrFdmn2ZDUD7gC+Bewtpn0PXDv7KX04gEws01ALXAONDyBhofy2ZwJUyvpRXxRXAE834R+Lcnra6Hcnqm/EncRVgEfBX+1H3AU2Jb4qCVQJKcIyWQ7ntco6UJgPrDEzDZLGp5HF1ATyt05bUndJZLONLOD4bms/THjFaNXTJ8EpwbX6PP4hrMd2Fzp/pfC90P5SAvQ78LvugMlnZ3eCCQNBs7A78wNFtAXQ7mzQOAufNL3oelJH81L0hzgdKAzftm/Ch/I+Rkel4VyH+6b9s/w2Qx8y8z+k6dACTl5fdsD3wmPGwrafwv8E3cLm0LyA/XMaeuV+n4B8Nfwvaz9MeMVo1dMnwQ1+Lil8Y6kKWb2pxx+ie4dgAnACfxuWhFN0ZvZAUk/ARYCOyQ9ibvhvXGXfiNhAaaDCJ1D+XGB3KT+zKYUbCavObibNxOf1BuAUTkLoVsopwMdgJH4ztAPeAa/JP++go7VysnD/CBnnZk9k9N+B3AxMNnMjlTB7+lQzpJ0VlIZFqJSdF1S38vaHzNeMXrF9AG/K47AF1FHfIE/CHwBWC/pyxTj2/hcWm9m71Wgq5rezBbj7mh7YCowFw8qvQcsT1y7RmHsCkgiJy2ROCrklQpXnou7HfOBVyWNMbNXUqRJ2LENvnP+LTy/IWksfvoNkTQozz0pIacBJM0AZgP/wC/L2faB+KmzoIQb+Tt8R7wO3/HW4HeVkfiutwu/m6VdjbL2x4xXjF4xfTCz9OICeB2YLukQPt7z8JRCHqaF8sGC9tL0km4BfgHcC9wP7MVPzV8CT0gaYGa3pE+g5FToTD46Zegqodm8zGyfma3GXb2u1OdREiR5pN2pyZD0PYLvqgADKylahZw6SLoZD2fuAIaZ2YFMe+K67aT+wtwkwj3xBvxU3IsvzO8C7+OnY5KbSl9oy9pferxi9Iq0pRKSYM3gvEZJF+Eb4PtAo5xXDL2koXjAZY2ZzTKz3WZ2OGysY/HAw2xJvdIn0Fuh7FMgO4lOFd1r0mgxXmb2rqQdwIDMhS6RcbCgazJhOjQlowk5AEiaieeyXgdGZKMzAadTb/NRKbupArBU0lI8uDAzJf84npNZkJHbARiAJ3zfSDWVtT9qvCL0iupTAck4F0V/WzJ4kGBMKDdlG8zssKRt+EK6OH0CJcSjQsizDpLOAL6CG569+OWhJXkBfDaUaYM34xGw8yWdktOnXyj3VCmjSA7hQrkIzycMK1g8AP/FE4h5n1cDzV/Cc7Xu3UTgNGBlJsxc1v6WHq8ivVq6z6BQNorqSTot8DyBj2lFlKA/NZTnFLQn9cfqJreZvQ08i1/abs7KxneAx8ysLp8hqbekC7IJuLK8Ao8asoRS25Dg7AZssdTrP+GEWIG7iXdk+n0VuAZ3ETek6kvLkXQ7fj96GT95Psz2T+l0xMy+l/cB1gSyR0PdiowOnbL8JF0WZB/CE3dpWaXsjxmvGL1i+kjqmw44pOp74PcPgMez7filvgsezKkmeFAt/Z9DOU3SeRmdrsMPgKPAlmwQ4SZgC3CvpBHAm/hrLMNwd+u2DP3zeNKpJ413rjK8rgV+FUKpb+N+8rnAEDz0uRePhGQxK/C8LcTntwV9xuKnyNRMrqGUHEmT8B/7U3xQZ+S4ZXvMbHmObmWxUdIR3EWsxd8hux4/1caZWV5epaz9Zelj9SrbZzwwV9Im/A2GWjzgMBo/sdbR8HWeBEkw4KGctjxUS78Kf1tjJPCmpNX43LgQd+/aAHPNbH8D9yqcHJfir1lcjkc/euORiEFW4YXOLEryei4Y1RUPHf4Yf+XjAH5i9TWzHTkyPgi8FwHdqc/8rwWuNrNsWLasnCSX0Q4Pd1vOZ3K1Y9IEVuFh5Qn4RO+P5yj6FoTKS9sfMV5RekX02QSsxsf7xtBnCO7uTgLGmNmxdIeQqL6K6oMHVdOHQMj1+CtnO/ANZjae+F8HXGNmSwDatP6doRWtiMf/AVupBembVNpAAAAAAElFTkSuQmCC\n",
      "text/latex": [
       "$\\displaystyle 0.036324966995778$"
      ],
      "text/plain": [
       "0.03632496699577796"
      ]
     },
     "execution_count": 81,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Compute the error \n",
    "mean_absolute_percentage_error(effect_true, effect_pred)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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rpCvr2+bNksoKCggJiamE+9IulJ396fKJERERETEaykMi4iIiIjXUhgWEREREa+lMCwiIiIiXkthWERERES8lsKwiIiIiHgthWERERER8VoKwyIiIiLitRSGRURERMRrKQyLiIiIiNfq0jD885//nIkTJxITE0NCQgLJycl89dVXTm0cDgfr1q1j6NChDBgwgJtuuomvv/7aqU1lZSUrV64kPj6eqKgo5s2bR15enlOb4uJiFi9eTGxsLLGxsSxevJji4mKnNidOnCA5OZmoqCji4+N55JFHqKqq6pRnFxERERH306Vh+JNPPuHee+9l9+7d7Ny5E19fX374wx9y7tw5o82GDRvYuHEjzz77LB9++CEWi4VZs2Zx4cIFo83q1at599132bp1K7t27eLChQskJydjs9mMNosWLSIjI4Pt27ezY8cOMjIyuP/++43zNpuN5ORkSktL2bVrF1u3bmXnzp2sWbOmaz4MEREREel2vl35Zm+//bbTnzdv3kxsbCyffvopM2bMwOFwsGnTJh566CFuvfVWADZt2oTVamXHjh0sXLiQkpISXn/9dTZu3MjEiRON64wYMYKPPvqIyZMnk5mZyQcffEBqaiqjR48G4IUXXmDGjBlkZWVhtVr58MMP+frrrzl06BDR0dEAPPnkkyxbtozHH3+c4ODgLvxkRERERKQ7dGvNcGlpKXa7ndDQUACOHTtGfn4+kyZNMtoEBgYyduxYDhw4AEB6ejrV1dVObaKjo0lKSjLapKWl0adPHyMIA4wZM4agoCCnNklJSUYQBpg8eTKVlZWkp6d31iOLiIiIiBvp0pHhhh599FFGjBjBqFGjAMjPzwfAYrE4tbNYLJw6dQqAgoICzGYz4eHhjdoUFBQYbcLDwzGZTMZ5k8lE//79ndo0fJ/w8HDMZrPRpilZWVnteVSXdOa1pWupLz2L+tNzqC89h/rSs3Rmf1qt1hbPd1sY/slPfsKnn35KamoqZrPZ6Vz9EAu1k+oaHmuoYZum2rvSpqXj0PoH2l515RvS86kvPYv603OoLz2H+tKzdHd/dkuZxOrVq3nrrbfYuXMngwcPNo5HRkYCNBqZLSwsNEZxIyIisNlsFBUVtdimsLAQh8NhnHc4HBQVFTm1afg+RUVF2Gy2RiPGIiIiIuKZujwMr1q1ih07drBz506uuuoqp3NxcXFERkayZ88e41hFRQX79+836n9HjhyJn5+fU5u8vDwyMzONNqNGjaK0tJS0tDSjTVpaGmVlZU5tMjMznZZk27NnD/7+/owcObLDn1tERERE3E+XlkmsWLGCbdu28Zvf/IbQ0FCjRjgoKIg+ffpgMplYunQpzz//PFarlcTERJ577jmCgoKYM2cOACEhIcyfP5+1a9disVgICwtjzZo1DB8+nAkTJgCQlJTElClTWL58ORs2bMDhcLB8+XKmTZtmDMNPmjSJYcOGsWTJElJSUjh37hxr165lwYIFWklCRERExEt0aRh++eWXAYxl0+qsWrWK1atXA/Dggw9SXl7OypUrKS4u5vrrr+ftt9+mb9++Rvunn34as9nMwoULqaioYNy4cbz00ktOtcdbtmxh1apVzJ49G4AZM2awfv1647zZbGbbtm2sWLGC6dOnExAQwJw5c0hJSem05xcRERER92IqLi52tN5MOlt3F49Lx1Ffehb1p+dQX3oO9aVn6e7+7NZ1hkVEREREupPCsIiIiIh4LYVhEREREfFaCsMiIiIi4rUUhkVERETEaykMi4iIiIjXUhgWEREREa+lMCwiIiIiXkthWERERES8lsKwiIiIiHgthWERERER8VoKwyIiIiLitRSGRURERMRrKQyLiIiIiNdSGBYRERERr6UwLCIiIiJeS2FYRERERLyWwrCIiIiIeC2FYRERERHxWgrDIiIiIuK1FIZFRERExGspDIuIiIiI11IYFhERERGvpTAsIiIiIl5LYVhEREREvJbCsIiIiIh4LYVhEREREfFaCsMiIiIi4rUUhkVERETEaykMi4iIiIjXUhgWEREREa+lMCwiIiIiXkthWERERES8lsKwiIiIiHgthWERERER8VoKwyIiIiLitRSGRURERMRrdXkY3rdvH/PmzWPYsGGEhobyxhtvOJ0vLS1l5cqVXH311QwYMIDvfOc7bNy40alNZWUlK1euJD4+nqioKObNm0deXp5Tm+LiYhYvXkxsbCyxsbEsXryY4uJipzYnTpwgOTmZqKgo4uPjeeSRR6iqquqU5xYRERER99PlYbisrIyrr76aZ555hsDAwEbn16xZw3vvvcdLL73EgQMHePjhh3nyySf53e9+Z7RZvXo17777Llu3bmXXrl1cuHCB5ORkbDab0WbRokVkZGSwfft2duzYQUZGBvfff79x3mazkZycTGlpKbt27WLr1q3s3LmTNWvWdO4HICIiIiJuw7er33Dq1KlMnToVgAceeKDR+bS0NJKTkxk3bhwAcXFxvP7663z++efMmzePkpISXn/9dTZu3MjEiRMB2Lx5MyNGjOCjjz5i8uTJZGZm8sEHH5Camsro0aMBeOGFF5gxYwZZWVlYrVY+/PBDvv76aw4dOkR0dDQATz75JMuWLePxxx8nODi4Kz4OEREREelGblczPGbMGFJTU8nNzQXgwIED/POf/2Ty5MkApKenU11dzaRJk4zXREdHk5SUxIEDB4DaQN2nTx8jCNddNygoyKlNUlKSEYQBJk+eTGVlJenp6Z39mCIiIiLiBrp8ZLg1zz77LMuXL+eaa67B17f29tavX8/06dMBKCgowGw2Ex4e7vQ6i8VCQUGB0SY8PByTyWScN5lM9O/f36mNxWJxukZ4eDhms9lo05SsrKwrf8huuLZ0LfWlZ1F/eg71pedQX3qWzuxPq9Xa4nm3C8ObN2/mwIEDvPnmm8TExPC3v/2Nxx9/nNjYWKZMmdLs6xwOR6Pw2542LR2H1j/Q9qor35CeT33pWdSfnkN96TnUl56lu/vTrcJweXk5Tz31FK+88gozZswA4JprruHQoUO8+OKLTJkyhYiICGw2G0VFRfTv3994bWFhIWPHjgUgIiKCwsJCp/DrcDgoKioyRoMjIiKMkok6RUVF2Gy2RiPGIiIiIuKZ3KpmuLq6murqasxms9Nxs9mM3W4HYOTIkfj5+bFnzx7jfF5eHpmZmUaN8KhRoygtLSUtLc1ok5aWRllZmVObzMxMpyXZ9uzZg7+/PyNHjuysRxQRERERN9LlI8OlpaXk5OQAYLfbyc3NJSMjg7CwMGJiYvje977Hk08+SVBQEDExMezbt4/f/e53PPnkkwCEhIQwf/581q5di8ViISwsjDVr1jB8+HAmTJgAQFJSElOmTGH58uVs2LABh8PB8uXLmTZtmjEMP2nSJIYNG8aSJUtISUnh3LlzrF27lgULFmglCREREREv0eUjwwcPHmTcuHGMGzeO8vJy1q1bx7hx43j66acB+N///V+uu+46Fi9ezJgxY/jFL37BmjVrWLx4sXGNp59+mpkzZ7Jw4UKmT59OUFAQv/vd75xGlLds2cI111zD7Nmzue2227jmmmvYvHmzcd5sNrNt2zZ69+7N9OnTWbhwITNnziQlJaXrPgwRERER6Vam4uJiR3ffhHR/8bh0HPWlZ1F/eg71pedQX3qW7u5Pt6oZFhERERHpSgrDIiIiIuK1FIZFRERExGspDIuIiIiI11IYFhERERGvpTAsIiIiIl5LYVhEREREvJbCsIiIiIh4LYVhEREREfFaCsMiIiIi4rUUhkVERETEaykMi4iIiIjXUhgWEREREa+lMCwiIiIiXkthWERERES8lsKwiIiIiHgthWERERER8VoKwyIiIiLitRSGRURERMRrKQyLiIiIiNdSGBYRERERr6UwLCIiIiJeS2FYRERERLyWwrCIiIiIeC2FYRERERHxWgrDIiIiIuK1FIZFRERExGspDIuIiIiI11IYFhERERGvpTAsIiIiIl5LYVhEREREvJbCsIiIiIh4LYVhEREREfFaCsMiIiIi4rUUhkVERETEaykMi4iIiIjXUhgWEREREa/V5WF43759zJs3j2HDhhEaGsobb7zRqM3hw4e56667iI2NZeDAgYwbN47MzEzjfGVlJStXriQ+Pp6oqCjmzZtHXl6e0zWKi4tZvHgxsbGxxMbGsnjxYoqLi53anDhxguTkZKKiooiPj+eRRx6hqqqqU55bRERERNxPl4fhsrIyrr76ap555hkCAwMbnT969CjTpk0jLi6OnTt3sn//fh577DGCgoKMNqtXr+bdd99l69at7Nq1iwsXLpCcnIzNZjPaLFq0iIyMDLZv386OHTvIyMjg/vvvN87bbDaSk5MpLS1l165dbN26lZ07d7JmzZrO/QBERERExG34dvUbTp06lalTpwLwwAMPNDqfkpLCpEmT+OlPf2ocGzx4sPH7kpISXn/9dTZu3MjEiRMB2Lx5MyNGjOCjjz5i8uTJZGZm8sEHH5Camsro0aMBeOGFF5gxYwZZWVlYrVY+/PBDvv76aw4dOkR0dDQATz75JMuWLePxxx8nODi4sz4CEREREXETblUzbLfbSU1NJSkpidtuu42EhAQmTpzI22+/bbRJT0+nurqaSZMmGceio6NJSkriwIEDAKSlpdGnTx8jCAOMGTOGoKAgpzZJSUlGEAaYPHkylZWVpKend/KTioiIiIg76PKR4ZacOXOG0tJSfv7zn/OTn/yEJ554gr/+9a/cd9999O7dm+nTp1NQUIDZbCY8PNzptRaLhYKCAgAKCgoI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GRncf//9Xfq8IiIiItJ93K5mOC0tjenTpzNjxgwA4uLimDFjBp9//jlQOyq8adMmHnroIW699VYANm3ahNVqZceOHSxcuJCSkhJef/11Nm7cyMSJEwHYvHkzI0aM4KOPPmLy5MlkZmbywQcfkJqayujRowF44YUXmDFjBllZWVit1m54ehERERHpSm43MjxmzBg++eQT/vWvfwHwzTffsHfvXv7f//t/ABw7doz8/HwmTZpkvCYwMJCxY8dy4MABANLT06murnZqEx0dTVJSktEmLS2NPn36GEG47r2DgoKMNiIiIiLi2dxuZPihhx6itLSU0aNHYzabqampYcWKFSxatAiA/Px8ACwWi9PrLBYLp06dAqCgoACz2Ux4eHijNgUFBUab8PBwTCaTcd5kMtG/f3+jTVOysrKu/CG74drStdSXnkX96TnUl55DfelZOrM/W/tpv9uF4bfffpvf/e53vPzyywwdOpRDhw7x6KOPEhsby4IFC4x29UMs1JZPNDzWUMM2TbVv7TqdVT6h0gzPob70LOpPz6G+9BzqS8/S3f3pdmUSa9eu5Uc/+hG33XYbw4cPZ968efzHf/wHL7zwAgCRkZEAjUZvCwsLjdHiiIgIbDYbRUVFLbYpLCzE4XAY5x0OB0VFRY1GnUVERETEM7ldGL548SJms9npmNlsxm63A7UT6iIjI9mzZ49xvqKigv379xv1vyNHjsTPz8+pTV5eHpmZmUabUaNGUVpaSlpamtEmLS2NsrIypzpiEREREfFcblcmMX36dH7xi18QFxfH0KFDycjIYOPGjcybNw+oLW1YunQpzz//PFarlcTERJ577jmCgoKYM2cOACEhIcyfP5+1a9disVgICwtjzZo1DB8+nAkTJgCQlJTElClTWL58ORs2bMDhcLB8+XKmTZumH72IiIiIeAm3C8Pr16/npz/9KQ8//DCFhYVERkZy991388gjjxhtHnzwQcrLy1m5ciXFxcVcf/31vP322/Tt29do8/TTT2M2m1m4cCEVFRWMGzeOl156yWnUecuWLaxatYrZs2cDMGPGDNavX991DysiIiIi3cpUXFzsaL2ZdLbuLh6XjqO+9CzqT8+hvvQc6kvP0t396XY1wyIiIiIiXUVhWERERES8lsKwiIiIiHgthWERERER8VoKwyIiIiLitRSGRURERMRrKQyLiIiIiNdSGBYRERERr6UwLCIiIiJeS2FYRERERLyWwrCIiIiIeC2FYRERERHxWgrDIiIiIuK1FIZFRERExGspDIuIiIiI11IYFhERERGvpTAsIiIiIl5LYVhEREREvJbCsIiIiIh4LYVhEREREfFaCsMiIiIi4rUUhkVERETEaykMi4iIiIjXUhgWEREREa+lMCwiIiIiXkthWERERES8lsKwiIiIiHgthWERERER8VoKwyIiIiLitRSGRURERMRrKQyLiIiIiNdSGBYRERERr6UwLCIiIiJeS2FYRERERLyWwrCIiIiIeC2FYRERERHxWgrDIiIiIuK13DIMnz59miVLlpCQkEBkZCSjR4/mk08+Mc47HA7WrVvH0KFDGTBgADfddBNff/210zUqKytZuXIl8fHxREVFMW/ePPLy8pzaFBcXs3jxYmJjY4mNjWXx4sUUFxd3xSOKiIiIiBtwuzBcXFzMtGnTcDgc/N///R8HDhxg/fr1WCwWo82GDRvYuHEjzz77LB9++CEWi4VZs2Zx4cIFo83q1at599132bp1K7t27eLChQskJydjs9mMNosWLSIjI4Pt27ezY8cOMjIyuP/++7v0eUVERESk+/h29w009N///d8MGDCAzZs3G8cGDx5s/N7hcLBp0yYeeughbr31VgA2bdqE1Wplx44dLFy4kJKSEl5//XU2btzIxIkTAdi8eTMjRozgo48+YvLkyWRmZvLBBx+QmprK6NGjAXjhhReYMWMGWVlZWK3WrntoEREREekWbjcy/Kc//Ynrr7+ehQsXkpiYyPe//33+53/+B4fDAcCxY8fIz89n0qRJxmsCAwMZO3YsBw4cACA9PZ3q6mqnNtHR0SQlJRlt0tLS6NOnjxGEAcaMGUNQUJDRRkREREQ8m9uNDB89epStW7fywAMP8NBDD3Ho0CFWrVoFwOLFi8nPzwdwKpuo+/OpU6cAKCgowGw2Ex4e3qhNQUGB0SY8PByTyWScN5lM9O/f32jTlKysrCt/yG64tnQt9aVnUX96DvWl51BfepbO7M/WftrvdmHYbrdz3XXX8cQTTwBw7bXXkpOTw8svv8zixYuNdvVDLNSWTzQ81lDDNk21b+06nVU+odIMz6G+9CzqT8+hvvQc6kvP0t396XZlEpGRkSQlJTkdu+qqq8jNzTXOA41GbwsLC43R4oiICGw2G0VFRS22KSwsNMovoDYIFxUVNRp1FhERERHP5HZheMyYMRw+fNjp2OHDh4mJiQEgLi6OyMhI9uzZY5yvqKhg//79Rv3vyJEj8fPzc2qTl5dHZmam0WbUqFGUlpaSlpZmtElLS6OsrMypjlhEREREPJfblUk88MADTJ06leeee47Zs2eTkZHB//zP//D4448DtaUNS5cu5fnnn8dqtZKYmMhzzz1HUFAQc+bMASAkJIT58+ezdu1aLBYLYWFhrFmzhuHDhzNhwgQAkpKSmDJlCsuXL2fDhg04HA6WL1/OtGnT9KMXERERES/hdmH429/+Nm+88QZPPfUUP/vZz4iOjuYnP/kJixYtMto8+OCDlJeXs3LlSoqLi7n++ut5++236du3r9Hm6aefxmw2s3DhQioqKhg3bhwvvfQSZrPZaLNlyxZWrVrF7NmzAZgxYwbr16/vuocVERERkW5lKi4udrTeTDpbdxePS8dRX3oW9afnUF96DvWlZ+nu/nS7mmERERERka6iMCwiIiIiXkthWERERES8lsKwiIiIiHgthWERERER8VoKwyIiIiLitRSGRURERMRrKQyLiIiIiNdSGBYRERERr6UwLCIiIiJeS2FYRERERLyWwrCIiIiIeC2FYRERERHxWgrDIiIiIuK1FIZFRERExGspDIuIiIiI1zIVFxc7uvsmRERERES6g0aGRURERMRrKQyLiIiIiNdSGBYRERERr6UwLCIiIiJeS2FYRERERLyWwnA77du3j3nz5jFs2DBCQ0N54403nM47HA7WrVvH0KFDGTBgADfddBNff/21U5vKykpWrlxJfHw8UVFRzJs3j7y8PKc2xcXFLF68mNjYWGJjY1m8eDHFxcVObU6cOEFycjJRUVHEx8fzyCOPUFVV1SnP7Yla68udO3cye/ZsEhISCA0NZe/evY2uob50Dy31ZXV1NU888QRjx44lKiqKpKQkFi1axIkTJ5yuob50H63920xJSeG73/0uUVFRxMXFccstt3DgwAGnNupP99BaX9b34IMPEhoayosvvuh0XH3pHlrry6VLlxIaGur0a8qUKU5t3K0vFYbbqaysjKuvvppnnnmGwMDARuc3bNjAxo0befbZZ/nwww+xWCzMmjWLCxcuGG1Wr17Nu+++y9atW9m1axcXLlwgOTkZm81mtFm0aBEZGRls376dHTt2kJGRwf3332+ct9lsJCcnU1payq5du9i6dSs7d+5kzZo1nfsBeJDW+vLixYuMGjWKn/70p81eQ33pHlrqy4sXL/LFF1+wYsUKPv74Y37729+Sl5fHnDlzqKmpMdqpL91Ha/82rVYrzz33HH/7299ITU0lLi6OOXPmUFBQYLRRf7qH1vqyzjvvvMM//vEPBg4c2Oic+tI9uNKXEyZMIDMz0/i1fft2p/Pu1pdaZ7gDDBo0iPXr13PnnXcCtaPCQ4cO5b777mPFihUAlJeXY7Va+a//+i8WLlxISUkJiYmJbNy4kblz5wKQm5vLiBEj2LFjB5MnTyYzM5PRo0eTmprKmDFjANi/fz8zZszgs88+w2q18v777zN37lwOHTpEdHQ0ANu2bWPZsmVkZWURHBzcDZ9Iz9WwL+srKioiISGBd999lxtvvNE4rr50Ty31ZZ1vvvmGMWPGsG/fPoYPH66+dGOu9Of58+eJjY3lrbfeYvLkyepPN9VcXx4/fpxp06bxhz/8gTlz5rB48WJ+/OMfA/o6666a6sulS5dy9uxZtm3b1uRr3LEvNTLcCY4dO0Z+fj6TJk0yjgUGBjJ27FjjR3jp6elUV1c7tYmOjiYpKclok5aWRp8+fRg9erTRZsyYMQQFBTm1SUpKMv4iAEyePJnKykrS09M78zHlEvVlz1X3k5rQ0FBAfdmTVVVV8eqrrxIcHMyIESMA9WdPUlNTw6JFi1ixYgVJSUmNzqsve5b9+/eTmJjI9ddfz7Jlyzhz5oxxzh370rc9Dykty8/PB8BisTgdt1gsnDp1CoCCggLMZjPh4eGN2tT9iK+goIDw8HBMJpNx3mQy0b9/f6c2Dd8nPDwcs9ns9KNC6Tzqy56pqqqKxx57jOnTpzNo0CBAfdkTpaamcu+993Lx4kUGDBjA73//eyIiIgD1Z0+ybt06wsLCuPfee5s8r77sOaZMmcLNN99MXFwcx48fJyUlhVtuuYWPPvoIf39/t+xLheFOVL8TobZ8ouGxhhq2aaq9K21aOi5dQ33pvmpqali8eDElJSW8+eabrbZXX7qvG2+8kb1791JUVMSrr77KPffcw/vvv8+AAQOafY3607188skn/Pa3v21ycnJr1Jfu57bbbjN+P3z4cEaOHMmIESPYvXs3t9xyS7Ov686+VJlEJ4iMjARo9J1JYWGh8V1MREQENpuNoqKiFtsUFhbicFwu63Y4HBQVFTm1afg+RUVF2Gy2Rt8xSedQX/YsNTU13HvvvXz55Ze888479OvXzzinvux5goKCiI+P57vf/S6//OUv8fPz47XXXgPUnz3F3r17OX36NElJSYSHhxMeHs6JEyd44oknuPrqqwH1ZU82cOBAoqKiyMnJAdyzLxWGO0FcXByRkZHs2bPHOFZRUcH+/fuN+peRI0fi5+fn1CYvL88oGgcYNWoUpaWlpKWlGW3S0tIoKytzapOZmem0JMmePXvw9/dn5MiRnfmYcon6sueorq5m4cKFfPnll7z77rvGN6511Jc9n91uN5ZWUn/2DIsWLWLfvn3s3bvX+DVw4EAeeOAB3nnnHUB92ZMVFRVx6tQp4+utO/alyiTaqbS01Pgux263k5ubS0ZGBmFhYcTExLB06VKef/55rFYriYmJPPfccwQFBTFnzhwAQkJCmD9/PmvXrsVisRAWFsaaNWsYPnw4EyZMACApKYkpU6awfPlyNmzYgMPhYPny5UybNg2r1QrApEmTGDZsGEuWLCElJYVz586xdu1aFixYoFmxLmqtL8+dO8eJEycoKSkB4MiRI4SEhBAZGUlkZKT60o201JcDBw7k7rvv5uDBg7z55puYTCajvj84OJjAwED1pZtpqT9DQkL47//+b6ZPn05kZCRFRUVs2bKFkydP8sMf/hDQ11l30trX2YYjeb6+vkRGRhp9oL50Hy31ZVhYGM888wy33HILkZGRHD9+nKeeegqLxcLMmTMB9+xLLa3WTnv37uXmm29udPyOO+5g06ZNOBwOnnnmGV555RWKi4u5/vrree6554wf+UDtaPHjjz/Ojh07qKioYNy4cTz//PNOMyPPnTvHqlWr+POf/wzAjBkzWL9+vTH7HWoXnV6xYgV//etfCQgIYM6cOaSkpODv7995H4AHaa0v33jjDf7jP/6j0flVq1axevVqQH3pLlrqy0cffZRrr722yddt3LjRWBpIfek+WurP559/nvvuu4/PP/+cs2fP0q9fP6677joefvhhvvOd7xht1Z/uobWvsw2NGDHCaWk1UF+6i5b68uc//zl33nknGRkZlJSUEBkZyY033siaNWuc+snd+lJhWERERES8lmqGRURERMRrKQyLiIiIiNdSGBYRERERr6UwLCIiIiJeS2FYRERERLyWwrCIiIiIeC2FYRERERHxWtqBTkREXJKens7+/fs5f/483/rWt5gxY0aTx0REehKFYRGRLnTkyBF+97vftdhm5syZjBgxoovuyDVFRUXs3r2bH/7wh0RFReHv79/ksY7w4YcfcubMGZKTkzvkeiIiLVEYFhHpQtHR0U5bzL766qsMGzaMUaNGGccCAwMbvc5ut+Pj032VbVlZWVgsFpKSklo81hFOnjxJbGxsh15TRKQ52o5ZRKSbVFRU8Itf/IJZs2Y5Bcrz58+zceNGbr31VtLT08nLy2Pq1KkEBwezfft2Hn74YcxmMwAlJSX86le/YvHixYSHhxuv//jjj8nOzsbhcBAXF8fUqVPp06dPs/fS0ms2b97M2bNnjbZXXXUVhYWFjY7ddtttLr33xYsX+etf/0pWVhYVFRWEhYUxefJkYmNjef7557HZbEbb/v37c9999135hy0i0gyNDIuIdJPTp0/jcDgYMGCA0/GCggIAPv30U8aPH0+/fv3w9/cnIyOD/v37G0G4rq2fnx/9+vUDoLi4mNdee41vfetb3HXXXdhsNt5//312797Nbbfd1uR9tPaau+66i9/85jdcc801XHvttfj5+VFTU9PomCvvff78eV577TUGDhzIrFmzCAoK4sSJE/Tq1QsfHx/mz5/PK6+8wt13301wcLDTs4qIdAaFYRGRbpKfn0/v3r0JCQlpdNzX15dZs2YRFhbmdDwiIqJR24iICEwmEwCpqalce+21jB8/3mjz/e9/n7fffrvZ+2jtNf7+/hQXFxMdHW2M8JrN5kbHfv/737f63qmpqURERDB79mzjnus/Y1lZGf7+/gwcONA4LyLSmRSGRUS6yenTp4mMjGx0vKCggISEBKeQWHf82muvbXTMYrEAtSUTR44cITc3l7///e9GG7vdjp+fX5P34Mprzpw5g91ud7rXhsdcuU5JSQnZ2dncc889zQbd06dPY7FYFIRFpMsoDIuIdJP8/HyuuuqqRscLCgq4/vrrnY5VV1dz9uzZRiPDJ0+eZOzYscbr/P39WbhwYaNrNjf5zpXX5OfnExISQkBAgNO91z/m6nV8fHwalYU0vJ+WzouIdDSFYRGRblBVVcXZs2cbjQxXVVVx7ty5RseLi4ux2+1GbTDA8ePHuXDhghGQfXx8qK6uJigoiF69erl0H668pqCgoNH9NDzmynXMZjN2u52qqqpml2ErKCggPj7epXsXEekI2oFORKQbtDZ5rmH4DAwMxGQycfr0aQBOnTrFn//8Z0wmkxGGo6KiCAgI4N133+X06dOcO3eOI0eOsHv3bhyOphcOcuU1LdUqt+U6AwcOJDAwkNTUVM6cOUNRURHp6enk5+cb17Hb7Zw9e5YLFy5QUVHR5s9VRKStNDIsItIN8vPzCQgIIDQ01On4mTNn6NevX6PR1T59+jB+/Hh27drFe++9R0xMDMOGDeOrr74y2gYGBjJ37lz27NnDm2++id1uJzQ0lGHDhjVbg9vaaxwOB2fOnGH06NHGa5o65sp79+7dm9tuu409e/bw2muvGSUTiYmJxnXGjRvHRx99RFpaGiNHjmT69OlX9DmLiLRG6wyLiIiIiNdSmYSIiIiIeC2FYRERERHxWgrDIiIiIuK1FIZFRERExGspDIuIiIiI11IYFhERERGvpTAsIiIiIl5LYVhEREREvJbCsIiIiIh4rf8fTzVnzZmZPKcAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 720x504 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_effect(\n",
    "    effect_true=effect_true,\n",
    "    effect_pred=effect_pred,\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### X-Learner on small data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n"
     ]
    }
   ],
   "source": [
    "# Get estimate (X-Learner)\n",
    "estimate = model_small.estimate_effect(\n",
    "    identified_estimand=estimand,\n",
    "    method_name='backdoor.econml.metalearners.XLearner',\n",
    "    target_units='ate',\n",
    "    method_params={\n",
    "        'init_params': {\n",
    "            'models': LGBMRegressor(n_estimators=50, max_depth=10)\n",
    "        },\n",
    "        'fit_params': {}\n",
    "    })"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Compute predictions\n",
    "effect_pred = model_small.causal_estimator.effect(earnings_interaction_test.drop(['true_effect', 'took_a_course'], axis=1))\n",
    "\n",
    "# Get the true effect\n",
    "effect_true = earnings_interaction_test['true_effect'].values"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 87,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle 0.462816260978833$"
      ],
      "text/plain": [
       "0.4628162609788326"
      ]
     },
     "execution_count": 87,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Compute the error \n",
    "mean_absolute_percentage_error(effect_true, effect_pred)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 88,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x504 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_effect(\n",
    "    effect_true=effect_true,\n",
    "    effect_pred=effect_pred,\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Meta-Learners on experiental data (Kevin Hillstrom)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 178,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Read in the data\n",
    "hillstrom_clean = pd.read_csv(r'./data/hillstrom_clean.csv')\n",
    "\n",
    "# Read in labels mapping\n",
    "with open(r'./data/hillstrom_clean_label_mapping.json', 'r') as f:\n",
    "    hillstrom_labels_mapping = json.load(f)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 169,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>recency</th>\n",
       "      <th>history</th>\n",
       "      <th>mens</th>\n",
       "      <th>womens</th>\n",
       "      <th>newbie</th>\n",
       "      <th>visit</th>\n",
       "      <th>conversion</th>\n",
       "      <th>spend</th>\n",
       "      <th>zip_code__rural</th>\n",
       "      <th>zip_code__surburban</th>\n",
       "      <th>zip_code__urban</th>\n",
       "      <th>channel__multichannel</th>\n",
       "      <th>channel__phone</th>\n",
       "      <th>channel__web</th>\n",
       "      <th>treatment</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>10</td>\n",
       "      <td>142.44</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>[0, 1, 0]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>6</td>\n",
       "      <td>329.08</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>[1, 0, 0]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>7</td>\n",
       "      <td>180.65</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>[0, 1, 0]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>9</td>\n",
       "      <td>675.83</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>[0, 0, 1]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2</td>\n",
       "      <td>45.34</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>[0, 1, 0]</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   recency  history  mens  womens  newbie  visit  conversion  spend  \\\n",
       "0       10   142.44     1       0       0      0           0    0.0   \n",
       "1        6   329.08     1       1       1      0           0    0.0   \n",
       "2        7   180.65     0       1       1      0           0    0.0   \n",
       "3        9   675.83     1       0       1      0           0    0.0   \n",
       "4        2    45.34     1       0       0      0           0    0.0   \n",
       "\n",
       "   zip_code__rural  zip_code__surburban  zip_code__urban  \\\n",
       "0                0                    1                0   \n",
       "1                1                    0                0   \n",
       "2                0                    1                0   \n",
       "3                1                    0                0   \n",
       "4                0                    0                1   \n",
       "\n",
       "   channel__multichannel  channel__phone  channel__web  treatment  \n",
       "0                      0               1             0  [0, 1, 0]  \n",
       "1                      0               0             1  [1, 0, 0]  \n",
       "2                      0               0             1  [0, 1, 0]  \n",
       "3                      0               0             1  [0, 0, 1]  \n",
       "4                      0               0             1  [0, 1, 0]  "
      ]
     },
     "execution_count": 169,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "hillstrom_clean.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 179,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['recency', 'history', 'mens', 'womens', 'newbie', 'visit', 'conversion',\n",
       "       'spend', 'zip_code__rural', 'zip_code__surburban', 'zip_code__urban',\n",
       "       'channel__multichannel', 'channel__phone', 'channel__web', 'treatment'],\n",
       "      dtype='object')"
      ]
     },
     "execution_count": 179,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "hillstrom_clean.columns"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Doubly Robust Methods: Let’s Get More!"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Estimate the effect"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 120,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n"
     ]
    }
   ],
   "source": [
    "# Get estimate (Doubly robust)\n",
    "estimate = model.estimate_effect(\n",
    "    identified_estimand=estimand,\n",
    "    method_name='backdoor.econml.dr.DRLearner',\n",
    "    target_units='ate',\n",
    "    method_params={\n",
    "        'init_params': {\n",
    "            'model_propensity': LogisticRegression(),\n",
    "            'model_regression': LGBMRegressor(n_estimators=1000, max_depth=10)\n",
    "        },\n",
    "        'fit_params': {}\n",
    "    })"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1235,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle 12579.1931920721$"
      ],
      "text/plain": [
       "12579.193192072085"
      ]
     },
     "execution_count": 1235,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "estimate.cate_estimates.mean()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Predict on test data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1236,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Compute predictions\n",
    "effect_pred = model.causal_estimator.effect(earnings_interaction_test.drop(['true_effect', 'took_a_course'], axis=1))\n",
    "\n",
    "# Get the true effect\n",
    "effect_true = earnings_interaction_test['true_effect'].values"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1237,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle 0.00554385331575871$"
      ],
      "text/plain": [
       "0.005543853315758708"
      ]
     },
     "execution_count": 1237,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Compute the error \n",
    "mean_absolute_percentage_error(effect_true, effect_pred)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1238,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAsMAAAHQCAYAAABEJmfqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8/fFQqAAAACXBIWXMAAAsTAAALEwEAmpwYAABquklEQVR4nO3de1xVZaL/8c9mg4AoF2GDImChW0RFuSSaTd5wVE63yTxip9FyMrRmxvKkmWPZrzlOllNTno5jTnmmpmkaR2vKZhytJuyYY1ICYqm0zTsqCLpRUG57798f6MotpojcZH/frxevcq1nrfWs/Xj58vBcTHa73YWIiIiIiAfyau0KiIiIiIi0FoVhEREREfFYCsMiIiIi4rEUhkVERETEYykMi4iIiIjHUhgWEREREY+lMCwiIiIiHqtFw/BvfvMbRo4cSXR0ND179iQjI4MdO3YY52tqanjqqacYOnQokZGRxMXFMW3aNA4ePOh2n6qqKubMmUNsbCyRkZFMmjSJwsJCtzJ2u53MzExiYmKIiYkhMzMTu93uVubgwYNkZGQQGRlJbGwsjz32GNXV1c32/iIiIiLStrRoGP7ss8+4//77Wb9+PWvWrMHb25sf/ehHnDhxAoDTp0+zbds2Zs+ezaeffsqf/vQnCgsLmTBhArW1tcZ95s2bxwcffMCKFStYu3Ytp06dIiMjA4fDYZSZNm0a+fn5rFq1itWrV5Ofn8/06dON8w6Hg4yMDMrLy1m7di0rVqxgzZo1zJ8/v+U+EBERERFpVabW3IGuvLycmJgY3nrrLdLT0y9aZteuXQwZMoRNmzbRr18/ysrK6NWrF0uXLmXixIkAHDp0iISEBFavXk1aWhoFBQUMHjyYdevWMWTIEAA2b95Meno6X3zxBVarlY8++oiJEyeyfft2oqKiAFi5ciUzZ87EZrMRGBjYMh+CiIiIiLSaVh0zXF5ejtPpJDg4+HvLnDp1CsAok5eXR01NDaNGjTLKREVFERcXx5YtWwDIzs6mU6dODB482CgzZMgQAgIC3MrExcUZQRggLS2Nqqoq8vLymugNRURERKQta9Uw/Pjjj5OQkEBqaupFz1dXV/PEE08wbtw4unfvDkBxcTFms5nQ0FC3shaLheLiYqNMaGgoJpPJOG8ymQgLC3MrY7FY3O4RGhqK2Ww2yoiIiIhI++bdWg/+xS9+weeff866deswm831ztfW1pKZmUlZWRlvv/32Ze/ncrnqhd/GlLnUcRERERFpX1qlZ3jevHm88847rFmzhuuuu67e+draWu6//36+/vpr3n//fbp06WKcCw8Px+FwUFpa6nZNSUmJ0dMbHh5OSUkJLtd3w6FdLhelpaVuZS7sAS4tLcXhcNTrMW4JNputxZ8pzUNt2b6oPdsPtWX7obZsX1q7PVs8DM+dO5fVq1ezZs0aevfuXe98TU0NU6dO5euvv+aDDz4gIiLC7XxiYiI+Pj5kZWUZxwoLC41JcwCpqamUl5eTnZ1tlMnOzqaiosKtTEFBgduSbFlZWfj6+pKYmNiUrywiIiIibVSLDpOYPXs2K1eu5I9//CPBwcEUFRUBEBAQQKdOnaitreXee+8lNzeXt99+G5PJZJQJDAzE39+foKAgJk+ezIIFC7BYLISEhDB//nz69evHiBEjAIiLi2P06NHMmjWLJUuW4HK5mDVrFmPHjsVqtQIwatQo4uPjmTFjBgsXLuTEiRMsWLCAKVOmaCUJEREREQ/RomH4tddeA+COO+5wOz537lzmzZtHYWEha9euBTCC7TlLly7lnnvuAeCZZ57BbDYzdepUKisrGTZsGK+88orb2ONXX32VuXPnMn78eADS09NZvHixcd5sNrNy5Upmz57NuHHj8PPzY8KECSxcuLDJ31tERERE2qZWXWdYvmOz2Yxea7m2qS3bF7Vn+6G2bD/Ulu1La7dnq60mISIiInI1amtrqaioaO1qyFXy8/OjrKzsqu7h7e1NQEBA4669qieLiIiItILa2lpOnTpFcHCwlkS9xvn6+uLn53dV96ioqKCqqgpfX98rvrZVN90QERERaYyKigoFYTF07NiRysrKRl2rMCwiIiLXJAVhOedqfi8oDIuIiIiIx1IYFhERERGPpTAsIiIiIs0mISGBl19+ubWr8b0UhkVERERayIMPPkhwcHC9r9GjR7d21QwPPvggGRkZV3zdokWLuPHGG+sdz8rK4v7772+KqjULLa0mIiIi0oJGjBjB8uXL3Y516NChlWrT/MLCwlq7CpeknmERERGRFuTr60tERITbV0hICJ999hlhYWFs3LjRKPu///u/REdHs2/fPgBuueUWZs2axdy5c+nRowc9evTgySefxOl0GtdUV1fz1FNP0bdvXyIjIxk5ciT//Oc/3erwzTffMGnSJGJiYujevTs//OEP+frrr1m0aBFvv/0269evN3qtz9Xn//2//8cNN9xA165dSUhIYMGCBcZyZm+99RbPPfccO3fuNK576623gPrDJA4ePMg999xDVFQUUVFR/OQnP6GwsNA4f66H+Z133iExMZGoqCj+4z/+g9LS0qZtiLPUMywiIiLtRlBwcIs+r8xub7J7/eAHP2DmzJnMmDGDzz77jGPHjvHEE0/w/PPPc9111xnlVq1axd13381HH33E119/zcMPP0xERAQ/+9nPAPjpT3/K3r17efXVV+nevTsffvghkyZN4pNPPiEhIYEjR44wbtw4Bg8ezF//+leCgoLYunUrDoeDn//853zzzTecOHHC6L0OCQkB6tby/Z//+R+6detGQUEB//mf/0mHDh144oknGD9+PDt37mT9+vX87W9/AyAwMLDeO7pcLu655x78/PxYs2YNJpOJRx99lHvuuYesrCxjibQDBw7w7rvv8sc//pHTp0/zk5/8hP/6r//ipZdearLP+xyFYREREZEW9PHHH9O9e3e3Y9OmTePpp59m3rx5ZGVl8fOf/5wDBw4wduxY/uM//sOtbEREBIsXL8ZkMtG7d292797Nb3/7W372s5+xd+9eVq9eTX5+PtHR0QBkZmayYcMGXn/9dV544QVee+01OnbsyBtvvGEMz+jVq5dxfz8/P6P3+nyPPfaY8f89evTgP//zP3n55Zd54okn8Pf3JyAgAG9v73rXnW/Dhg189dVX5Obm0qNHDwCWLVvGkCFD+PTTTxkxYgRQt8Pgb3/7W4KCggC47777jJ7mpqYwLCIiItKChg4dypIlS9yOnQt9Pj4+vPbaawwZMgSLxcKaNWvqXX/DDTe4bTKRmprKr371K06ePMm2bdtwuVwMGTLE7ZqqqiqGDRsGQH5+PjfeeOMVj1N+//33WbZsGXv27KGiogKHw4HD4biiexQUFNCtWzcjCENdsO7WrRu7du0ywnB0dLTxmQB07dqVkpKSK3pWQykMi4iIiLSgjh07Ehsb+73nv/jiC5xOJ2VlZZSWlhJ8BUM/nE4nJpOJTz75BB8fH7dzfn5+QN1QhSv1xRdf8JOf/IS5c+fyzDPPEBQUxNq1a3nyySev6D4ul+t7d4s7//iFdTeZTG7jopuSwrCIiIi0G005hrc17N+/n8cee4znn3+ejz/+mAceeIAPP/wQb+/vItvWrVvdQuUXX3xBt27dCAwMZMCAAbhcLoqKioye4AsNHDiQlStXUl1dfdHe4Q4dOtTr8f3888/p1q2b21CJgwcPXva6C/Xp04fDhw+zf/9+o3d4//79HDlyhD59+lzy2uai1SREREREWlBVVRVFRUVuXyUlJTgcDqZPn87QoUOZOnUqL7/8MocPH+bZZ591u/7o0aM8/vjj2Gw23n//ff77v/+bhx56CKgb+ztx4kQeeugh3n//ffbt20dubi4vv/yyMeTi/vvvp6Kigvvuu4+cnBz27NljjDMGiImJYefOndhsNkpLS6mpqaFXr14cOXKEv/zlL+zbt48VK1bwzjvvuNUrJiaGgwcPkpeXR2lpKVVVVfXefcSIEfTv35/MzEzy8vLIzc3loYceYuDAgd8b3pubwrCIiIhIC9qwYQNxcXFuX8OGDeOFF15gz549/M///A8AXbp0YdmyZbz00kts3rzZuP7f//3fcTqdpKWlMXPmTCZPnmyEYYClS5dyzz33sGDBAgYNGkRGRgabNm0iJiYGgMjISNauXUtNTQ233XYbw4YN43e/+53R+3zvvffSu3dvRo4cSc+ePfn8889JT09n5syZzJs3j5tuuomsrCx+8YtfuL3X7bffzg9/+EPuuOMOevbsyerVq+u9u8lk4q233iI0NJRbb72V2267jfDwcN56663vHT7R3Ex2u/3KB45Ik7PZbFit1tauhjQBtWX7ovZsP9SW7YfNZiM8PNxtgpWnuOWWW+jbty+//vWvW7sqTaaystIYz3w1ysrKGvV7Qj3DIiIiIuKxFIZFRERExGNpNQkRERGRa8Tf//731q5Cu6OeYRERERHxWArDIiIiIuKxFIZFRETkmtSYndSkfbqa3wsKwyIiInLNCQgIwG63KxALAKdPn2708myaQCciIiLXHG9vbzp37szJkydbuypylU6ePElgYOBV3cPb2xtfX9/GXXtVTxYRERFpJd7e3h658UZ7U1xcTHR0dKs9X8MkRERERMRjKQyLiIiIiMdSGBYRERERj6UwLCIiIiIeS2FYRERERDyWwrCIiIiIeCyFYRERERHxWArDIiIiIuKxFIZFRERExGMpDIuIiIiIx2rRMPyb3/yGkSNHEh0dTc+ePcnIyGDHjh1uZVwuF4sWLaJPnz507dqVW265hZ07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9VV+85vfGGWWLFnC0qVLee655/jkk0+wWCzceeednDp1yigzb948PvjgA1asWMHatWs5deoUGRkZOBwOo8y0adPIz89n1apVrF69mvz8fKZPn96i7ysiIiIirce7tStwoezsbMaNG0d6ejoAPXr0ID09na1btwJ1vcLLli3jkUce4Y477gBg2bJlWK1WVq9ezdSpUykrK+PNN99k6dKljBw5EoDly5eTkJDAhg0bSEtLo6CggI8//ph169YxePBgAF588UXS09Ox2WxYrdZWeHsRERERaUltrmd4yJAhfPbZZ3zzzTcA7Nq1i40bN/LDH/4QgP3791NUVMSoUaOMa/z9/Rk6dChbtmwBIC8vj5qaGrcyUVFRxMXFGWWys7Pp1KmTEYTPPTsgIMAoIyIiIiLtW5vrGX7kkUcoLy9n8ODBmM1mamtrmT17NtOmTQOgqKgIAIvF4nadxWLhyJEjABQXF2M2mwkNDa1Xpri42CgTGhqKyWQyzptMJsLCwowyF2Oz2a7+JVvh3tKy1Jbti9qz/VBbth9qy/alOdvzcj/tb3Nh+N133+XPf/4zr732Gn369GH79u08/vjjxMTEMGXKFKPc+SEW6oZPXHjsQheWuVj5y92nuYZPaGhG+6G2bF/Unu2H2rL9UFu2L63dnm1umMSCBQv42c9+xl133UW/fv2YNGkSP/3pT3nxxRcBiIiIAKjXe1tSUmL0FoeHh+NwOCgtLb1kmZKSElwul3He5XJRWlpar9dZRERERNqnNheGT58+jdlsdjtmNptxOp1A3YS6iIgIsrKyjPOVlZVs3rzZGP+bmJiIj4+PW5nCwkIKCgqMMqmpqZSXl5OdnW2Uyc7OpqKiwm0csYiIiIi0X21umMS4ceN46aWX6NGjB3369CE/P5+lS5cyadIkoG5ow4MPPsgLL7yA1WqlV69ePP/88wQEBDBhwgQAgoKCmDx5MgsWLMBisRASEsL8+fPp168fI0aMACAuLo7Ro0cza9YslixZgsvlYtasWYwdO1Y/ehERERHxEG0uDC9evJhf/epXPProo5SUlBAREcG9997LY489ZpR5+OGHOXPmDHPmzMFut5OSksK7775L586djTLPPPMMZrOZqVOnUllZybBhw3jllVfcep1fffVV5s6dy/jx4wFIT09n8eLFLfeyIiIiItKqTHa73XX5YtLcWnvw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37/e+SVLlrB06VKee+45PvnkEywWC3feeSenTp0yysybN48PPviAFStWsHbtWk6dOkVGRgYOh8MoM23aNPLz81m1ahWrV68mPz+f6dOnG+cdDgcZGRmUl5ezdu1aVqxYwZo1a5g/f37zfgDtyOXa8vTp06SmpvKrX/3qe++htmwbLtWWp0+fZtu2bcyePZtPP/2UP/3pTxQWFjJhwgRqa2uNcmrLtuNyfzatVivPP/88//rXv1i3bh09evRgwoQJFBcXG2XUnm3D5drynPfff5+cnBy6detW75zasm1oSFuOGDGCgoIC42vVqlVu59taW2qd4SbQvXt3Fi9ezD333APU9Qr36dOHBx54gNmzZwNw5swZrFYr//Vf/8XUqVMpKyujV69eLF26lIkTJwJw6NAhEhISWL16NWlpaRQUFDB48GDWrVvHkCFDANi8eTPp6el88cUXWK1WPvroIyZOnMj27duJiooCYOXKlcycORObzUZgYGArfCLXrgvb8nylpaX07NmTDz74gJtvvtk4rrZsmy7Vlufs2rWLIUOGsGnTJvr166e2bMMa0p4nT54kJiaGd955h7S0NLVnG/V9bXngwAHGjh3Le++9x4QJE8jMzOTnP/85oL9n26qLteWDDz7I8ePHWbly5UWvaYttqZ7hZrB//36KiooYNWqUcczf35+hQ4caP8LLy8ujpqbGrUxUVBRxcXFGmezsbDp16sTgwYONMkOGDCEgIMCtTFxcnPEbASAtLY2qqiry8vKa8zXlLLXltevcT2qCg4MBteW1rLq6mjfeeIPAwEASEhIAtee1pLa2lmnTpjF79mzi4uLqnVdbXls2b95Mr169SElJYebMmRw7dsw41xbb0rsxLymXVlRUBIDFYnE7brFYOHLkCADFxcWYzWZCQ0PrlTn3I77i4mJCQ0MxmUzGeZPJRFhYmFuZC58TGhqK2Wx2+1GhNB+15bWpurqaJ554gnHjxtG9e3dAbXktWrduHffffz+nT5+ma9eu/PWvfyU8PBxQe15LFi1aREhICPfff/9Fz6strx2jR4/mtttuo0ePHhw4cICFCxdy++23s2HDBnx9fdtkWyoMN6PzGxHqhk9ceOxCF5a5WPmGlLnUcWkZasu2q7a2lszMTMrKynj77bcvW15t2XbdfPPNbNy4kdLSUt544w3uu+8+PvroI7p27fq916g925bPPvuMP/3pTxednHw5asu256677jL+v1+/fiQmJpKQkMD69eu5/fbbv/e61mxLDZNoBhEREQD1vjMpKSkxvosJDw/H4XBQWlp6yTIlJSW4XN8N63a5XJSWlrqVufA5paWlOByOet8xSfNQW15bamtruf/++/n66695//336dKli3FObXntCQgIIDY2lkGDBvE///M/+Pj48Ic//AFQe14rNm7cyNGjR4mLiyM0NJTQ0FAOHjzIU089Rd++fQG15bWsW7duREZGsmfPHqBttqXCcDPo0aMHERERZGVlGccqKyvZvHmzMf4lMTERHx8ftzKFhYXGoHGA1NRUysvLyc7ONspkZ2dTUVHhVqagoMBtSZKsrCx8fX1JTExszteUs9SW146amhqmTp3K119/zQcffGB843qO2vLa53Q6jaWV1J7XhmnTprFp0yY2btxofHXr1o2HHnqI999/H1BbXstKS0s5cuSI8fdtW2xLDZNopPLycuO7HKfTyaFDh8jPzyckJITo6GgefPBBXnjhBaxWK7169eL5558nICCACRMmABAUFMTkyZNZsGABFouFkJAQ5s+fT79+/RgxYgQAcXFxjB49mlmzZrFkyRJcLhezZs1i7NixWK1WAEaNGkV8fDwzZsxg4cKFnDhxggULFjBlyhTNim2gy7XliRMnOHjwIGVlZQDs3buXoKAgIiIiiIiIUFu2IZdqy27dunHvvfeSm5vL22+/jclkMsb3BwYG4u/vr7ZsYy7VnkFBQfz3f/8348aNIyIigtLSUl599VUOHz7Mj370I0B/z7Yll/t79sKePG9vbyIiIow2UFu2HZdqy5CQEJ599lluv/12IiIiOHDgAL/85S+xWCzceuutQNtsSy2t1kgbN27ktttuq3f87rvvZtmyZbhcLp599llef/117HY7KSkpPP/888aPfKCut/jJJ59k9erVVFZWMmzYMF544QW3mZEnTpxg7ty5/OMf/wAgPT2dxYsXG7PfoW7R6dmzZ/N///d/+Pn5MWHCBBYuXIivr2/zfQDtyOXa8q233uKnP/1pvfNz585l3rx5gNqyrbhUWz7++OMMHDjwotctXbrUWBpIbdl2XKo9X3jhBR544AG2bt3K8ePH6dKlC0lJSTz66KPccMMNRlm1Z9twub9nL5SQkOC2tBqoLduKS7Xlb37zG+655x7y8/MpKysjIiKCm2++mfnz57u1U1trS4VhEREREfFYGjMsIiIiIh5LYVhEREREPJbCsIiIiIh4LIVhEREREfFYCsMiIiIi4rEUhkVERETEYykMi4iIiIjH0g50IiLSIHl5eWzevJmTJ08yYMAA0tPTL3pMRORaojAsItKC9u7dy5///OdLlrn11ltJSEhooRo1TGlpKevXr+dHP/oRkZGR+Pr6XvRYU/jkk084duwYGRkZTXI/EZFLURgWEWlBUVFRblvMvvHGG8THx5Oammoc8/f3r3ed0+nEy6v1RrbZbDYsFgtxcXGXPNYUDh8+TExMTJPeU0Tk+2g7ZhGRVlJZWclLL73EnXfe6RYoT548ydKlS7njjjvIy8ujsLCQMWPGEBgYyKpVq3j00Ucxm80AlJWV8dvf/pbMzExCQ0ON6z/99FO+/fZbXC4XPXr0YMyYMXTq1Ol763Kpa5YvX87x48eNsr1796akpKTesbvuuqtBzz59+jT/93//h81mo7KykpCQENLS0oiJieGFF17A4XAYZcPCwnjggQeu/sMWEfke6hkWEWklR48exeVy0bVrV7fjxcXFAHz++ecMHz6cLl264OvrS35+PmFhYUYQPlfWx8eHLl26AGC32/nDH/7AgAED+PGPf4zD4eCjjz5i/fr13HXXXRetx+Wu+fGPf8wf//hH+vfvz8CBA/Hx8aG2trbesYY8++TJk/zhD3+gW7du3HnnnQQEBHDw4EE6dOiAl5cXkydP5vXXX+fee+8lMDDQ7V1FRJqDwrCISCspKiqiY8eOBAUF1Tvu7e3NnXfeSUhIiNvx8PDwemXDw8MxmUwArFu3joEDBzJ8+HCjzA9+8APefffd763H5a7x9fXFbrcTFRVl9PCazeZ6x/76179e9tnr1q0jPDyc8ePHG3U+/x0rKirw9fWlW7duxnkRkeakMCwi0kqOHj1KREREvePFxcX07NnTLSSeOz5w4MB6xywWC1A3ZGLv3r0cOnSIL7/80ijjdDrx8fG5aB0acs2xY8dwOp1udb3wWEPuU1ZWxrfffst99933vUH36NGjWCwWBWERaTEKwyIiraSoqIjevXvXO15cXExKSorbsZqaGo4fP16vZ/jw4cMMHTrUuM7X15epU6fWu+f3Tb5ryDVFRUUEBQXh5+fnVvfzjzX0Pl5eXvWGhVxYn0udFxFpagrDIiKtoLq6muPHj9frGa6urubEiRP1jtvtdpxOpzE2GODAgQOcOnXKCMheXl7U1NQQEBBAhw4dGlSPhlxTXFxcrz4XHmvIfcxmM06nk+rq6u9dhq24uJjY2NgG1V1EpCloBzoRkVZwuclzF4ZPf39/TCYTR48eBeDIkSP84x//wGQyGWE4MjISPz8/PvjgA44ePcqJEyfYu3cv69evx+W6+MJBDbnmUmOVr+Q+3bp1w9/fn3Xr1nHs2DFKS0vJy8ujqKjIuI/T6eT48eOcOnWKysrKK/5cRUSulHqGRURaQVFREX5+fgQHB7sdP3bsGF26dKnXu9qpUyeGDx/O2rVr+fDDD4mOjiY+Pp4dO3YYZf39/Zk4cSJZWVm8/fbbOJ1OgoODiY+P/94xuJe7xuVycezYMQYPHmxcc7FjDXl2x44dueuuu8jKyuIPf/iDMWSiV69exn2GDRvGhg0byM7OJjExkXHjxl3V5ywicjlaZ1hEREREPJaGSYiIiIiIx1IYFhERERGPpTAsIiIiIh5LYVhEREREPJbCsIiIiIh4LIVhEREREfFYCsMiIiIi4rEUhkVERETEYykMi4iIiIjH+v9spXR7vunDgwAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 720x504 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_effect(\n",
    "    effect_true=effect_true,\n",
    "    effect_pred=effect_pred,\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## If Machine Learning is Cool, How About Double Machine Learning?"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Estimate the effect"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 140,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n"
     ]
    }
   ],
   "source": [
    "# Get estimate (DML)\n",
    "estimate = model.estimate_effect(\n",
    "    identified_estimand=estimand,\n",
    "    method_name='backdoor.econml.dml.LinearDML',\n",
    "    target_units='ate',\n",
    "    method_params={\n",
    "        'init_params': {\n",
    "            'model_y': LGBMRegressor(n_estimators=500, max_depth=10),\n",
    "            'model_t': LGBMRegressor(n_estimators=500, max_depth=10),\n",
    "        },\n",
    "        'fit_params': {}\n",
    "    })"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 141,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle 12363.8275243282$"
      ],
      "text/plain": [
       "12363.827524328159"
      ]
     },
     "execution_count": 141,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "estimate.cate_estimates.mean()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Predict on test data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 142,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Compute predictions\n",
    "effect_pred = model.causal_estimator.effect(earnings_interaction_test.drop(['true_effect', 'took_a_course'], axis=1))\n",
    "\n",
    "# Get the true effect\n",
    "effect_true = earnings_interaction_test['true_effect'].values"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 143,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle 0.0150079756248254$"
      ],
      "text/plain": [
       "0.015007975624825387"
      ]
     },
     "execution_count": 143,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Compute the error \n",
    "mean_absolute_percentage_error(effect_true, effect_pred)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 144,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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Hs7tt9/O7bffzl//+lcAHA4Ha9euZdSoUQwYMIBx48axefNm47X1o7Vbt27l5ptvZsCAAfzud79j8ODBANxyyy0EBgaye/duAPbt28cPfvADBg4cyLBhw/if//kfzpw5Y1zP4XDw8ssv853vfIeQkBCuvPJKnn76aQBGjhwJwKRJkwgMDOTGG29s8nnq7+mdd97hBz/4AQMGDOCGG27gP//5D19//TVTp04lLCyM6dOnc/jwYafX/u53v+Oaa67BYrFwzTXXsGnTJqfz2dnZ3HjjjYSGhvLd736XlJSURu9//Phx/uu//ouoqCiioqKYPXs2WVlZF9EjbaORYREREelWeicltXjex27Hw6P9xvPONgipl8LHx4eamhoAkpOTef/993n++eeJjY3l888/56GHHiIwMJBp06YZr3n66adJTk7m5Zdfxmw2M378eMaOHcsbb7zBmDFjCAoK4quvvmLmzJk8/vjjvPzyyxQXF7NixQp+/OMf88YbbwDw05/+lI0bN/Kzn/2M66+/nsLCQtLT0wH46KOPmDx5Mu+88w5XXXUVvXr1avE5Vq9ezTPPPMPgwYP5n//5H+677z6Cg4N54oknsFgsLF68mOXLlxvhfvv27Tz66KM888wzTJ48mX/84x888sgjhISEkJiYiN1u56677iIgIIAPPviAiooKHn/8caqqqs73wdmz3HzzzYwePZq//vWv9OrVi5dffplbb72V1NRUevfu3S591BSFYREREZFL9MUXX7B161YmTJhAeXk569at491332XcuHEADB48mC+++ILXXnvNKQwvXLiQW2+91fh9UVERAEFBQYSGhgLwy1/+khkzZvDggw8a7V544QXGjx/PqVOn8PX15de//jWrV69m7ty5AERHRzN69GgAgoODAejXr59xzZb893//N1OnTgXgxz/+MXPmzOGNN95g/PjxANx333089thjRvtf/epXJCUlsXDhQgBiY2NJS0tj7dq1JCYm8vHHH/PNN9+wf/9+IiIigLrAnZiYaFzjnXfeweFw8Otf/9pYM/gXv/gFsbGx7Ny5kxkzZrR6322lMCwiIiLSBh9++CGDBg2itraWmpoafvCDH7BmzRoyMjKorKxk1qxZTptB1NTUEBkZ6XSNa665ptX32b9/P9nZ2fz5z382jjkcDgBycnIwm81UVVUxYcKEdnmu4cOH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r1H/O2rUKLy8vJza5OXlkZGRYbQZPXo0ZWVlpKamGm1SU1MpLy93apORkeG0JNuuXbvw9vZm1KhR7f7cIiIiItL9dGqZxLJly9i8eTO///3vCQwMNGqE/fz86NOnDyaTicWLF/PCCy8QFxdHbGwszz//PH5+fsyaNQuAgIAA5s6dy6pVq7BYLAQFBbFy5UqGDx/OxIkTAYiPj2fKlCksXbqUtWvX4nA4WLp0KdOmTTOG4SdPnsywYcNYtGgRycnJFBcXs2rVKubNm6eVJERERETcRKeG4ddeew3AWDat3vLly1mxYgUADz30EBUVFTz66KNYrVauvfZa3n33Xfr27Wu0f+aZZzCbzcyfP5/KykrGjx/PK6+84lR7/Oqrr7J8+XJmzpwJQGJiImvWrDHOm81mNm/ezLJly5g+fTo+Pj7MmjWL5OTkDnt+EREREeleTFar1dF6M+loXV08Lu1HfdmzqD97DvVlz6G+7Fm6uj+7dJ1hEREREZGupDAsIiIiIm5LYVhERERE3JbCsIiIiIi4LYVhEREREXFbCsMiIiIi4rYUhkVERETEbSkMi4iIiIjbUhgWEREREbelMCwiIiIibkthWERERETclsKwiIiIiLgthWERERERcVsKwyIiIiLithSGRURERMRtKQyLiIiIiNtSGBYRERERt6UwLCIiIiJuS2FYRERERNyWwrCIiIiIuC2FYRERERFxWwrDIiIiIuK2FIZFRERExG0pDIuIiIiI21IYFhERERG3pTAsIiIiIm5LYVhERERE3JbCsIiIiIi4LYVhEREREXFbCsMiIiIi4rYUhkVERETEbSkMi4iIiIjbUhgWEREREbelMCwiIiIibkthWERERETclsKwiIiIiLgthWERERERcVudHob37NnDnDlzGDZsGIGBgbz11ltO58vKynj00Ue58sorGTBgAN/97ndZt26dU5uqqioeffRRoqOjCQsLY86cOeTl5Tm1sVqtLFy4kMjISCIjI1m4cCFWq9WpzbFjx0hKSiIsLIzo6Ggee+wxqqurO+S5RURERKT76fQwXF5ezpVXXsmzzz6Lr69vo/MrV67kgw8+4JVXXmHfvn088sgjPP300/zxj3802qxYsYLt27ezceNGduzYQWlpKUlJSdhsNqPNggULSE9PZ8uWLWzdupX09HTuv/9+47zNZiMpKYmysjJ27NjBxo0b2bZtGytXruzYD0BEREREug3Pzn7DqVOnMnXqVAAeeOCBRudTU1NJSkpi/PjxAERFRfHmm2/yxRdfMGfOHEpKSnjzzTdZt24dkyZNAmDDhg2MGDGCjz/+mISEBDIyMvjwww9JSUlhzJgxALz00kskJiaSmZlJXFwcH330EQcPHuTAgQOEh4cD8PTTT7NkyRKefPJJ/P39O+PjEBEREZEu1O1qhseOHUtKSgq5ubkA7Nu3j//85z8kJCQAkJaWRk1NDZMnTzZeEx4eTnx8PPv27QPqAnWfPn2MIFx/XT8/P6c28fHxRhAGSEhIoKqqirS0tI5+TBERERHpBjp9ZLg1zz33HEuXLuWqq67C07Pu9tasWcP06dMBKCgowGw2Exwc7PQ6i8VCQUGB0SY4OBiTyWScN5lM9O/f36mNxWJxukZwcDBms9lo05TMzMxLf8guuLZ0LvVlz6L+7DnUlz2H+rJn6cj+jIuLa/F8twvDGzZsYN++fbz99ttERETwz3/+kyeffJLIyEimTJnS7OscDkej8NuWNi0dh9Y/0LaqL9+Qy5/6smdRf/Yc6sueQ33Zs3R1f3arMFxRUcFPf/pTXn/9dRITEwG46qqrOHDgAC+//DJTpkwhJCQEm81GUVER/fv3N15bWFjIuHHjAAgJCaGwsNAp/DocDoqKiozR4JCQEKNkol5RURE2m63RiLGIiIiI9Ezdqma4pqaGmpoazGaz03Gz2Yzdbgdg1KhReHl5sWvXLuN8Xl4eGRkZRo3w6NGjKSsrIzU11WiTmppKeXm5U5uMjAynJdl27dqFt7c3o0aN6qhHFBEREZFupNNHhsvKysjOzgbAbreTm5tLeno6QUFBREREcP311/P000/j5+dHREQEe/bs4Y9//CNPP/00AAEBAcydO5dVq1ZhsVgICgpi5cqVDB8+nIkTJwIQHx/PlClTWLp0KWvXrsXhcLB06VKmTZtmDMNPnjyZYcOGsWjRIpKTkykuLmbVqlXMmzdPK0mIiIiIuIlOHxn+8ssvGT9+POPHj6eiooLVq1czfvx4nnnmGQB++9vfcs0117Bw4ULGjh3LL37xC1auXMnChQuNazzzzDPcdNNNzJ8/n+nTp+Pn58cf//hHpxHlV199lauuuoqZM2dy2223cdVVV7FhwwbjvNlsZvPmzfTu3Zvp06czf/58brrpJpKTkzvvwxARERGRLmWyWq2Orr4J6fricWk/6sueRf3Zc6gvew71Zc/S1f3ZrWqGRUREREQ6k8KwiIiIiLgthWERERERcVsKwyIiIiLithSGRURERMRtKQyLiIiIiNtSGBYRERERt6UwLCIiIiJuS2FYRERERNyWwrCIiIiIuC2FYRERERFxWwrDIiIiIuK2FIZFRERExG0pDIuIiIiI21IYFhERERG3pTAsIiIiIm5LYVhERERE3JbCsIiIiIi4LYVhEREREXFbCsMiIiIi4rYUhkVERETEbSkMi4iIiIjbUhgWEREREbelMCwiIiIibkthWERERETclsKwiIiIiLgthWERERERcVsKwyIiIiLithSGRURERMRtKQyLiIiIiNtSGBYRERERt6UwLCIiIiJuS2FYRERERNyWwrCIiIiIuC2FYRERERFxWwrDIiIiIuK2FIZFRERExG11ehjes2cPc+bMYdiwYQQGBvLWW281anPo0CHuuusuIiMjGThwIOPHjycjI8M4X1VVxaOPPkp0dDRhYWHMmTOHvLw8p2tYrVYWLlxIZGQkkZGRLFy4EKvV6tTm2LFjJCUlERYWRnR0NI899hjV1dUd8twiIiIi0v10ehguLy/nyiuv5Nlnn8XX17fR+cOHDzNt2jSioqLYtm0be/fu5YknnsDPz89os2LFCrZv387GjRvZsWMHpaWlJCUlYbPZjDYLFiwgPT2dLVu2sHXrVtLT07n//vuN8zabjaSkJMrKytixYwcbN25k27ZtrFy5smM/ABERERHpNjw7+w2nTp3K1KlTAXjggQcanU9OTmby5Mn87Gc/M44NHjzY+HVJSQlvvvkm69atY9KkSQBs2LCBESNG8PHHH5OQkEBGRgYffvghKSkpjBkzBoCXXnqJxMREMjMziYuL46OPPuLgwYMcOHCA8PBwAJ5++mmWLFnCk08+ib+/f0d9BCIiIiLSTXSrmmG73U5KSgrx8fHcdtttxMTEMGnSJN59912jTVpaGjU1NUyePNk4Fh4eTnx8PPv27QMgNTWVPn36GEEYYOzYsfj5+Tm1iY+PN4IwQEJCAlVVVaSlpXXwk4qIiIhId9DpI8MtOXXqFGVlZbz44ov85Cc/4amnnuL//u//uO++++jduzfTp0+noKAAs9lMcHCw02stFgsFBQUAFBQUEBwcjMlkMs6bTCb6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MQzw6quvsnz5cmbOnAlAYmIia9asMc6bzWY2b97MsmXLmD59utOmG12tfle3ompwmCDWF+L9GpcjJOe0HITrnayGX8U3Xt5siE/dNUVERETclclqtTpabyYdrb54fE9x3S5uTa3xMMQHpwlvN31ZVw7RmttD6soZ6muLVevbsbp6IoC0L/Vnz6G+7DnUlz1LV/dnt5pAJ3Ujws0tdnbhhDdXdnZrOPpbX+srIiIiInUUhrsZayvL/jac8NbUzm4+wNhAsKHRXxEREZHWKAx3M4GecMbW/PmGE960zJmIiIjIpVEY7mbWD225ZvjCCW8qfRARERFpu261zrDA9UHw/kiI9IY+prqd3a72q5sEd7G7xYmIiIhIyzQy3A1dHwTp13X1XYiIiIj0fBoZFhERERG3pTAsIiIiIm5LYVhERERE3JbCsIiIiIi4LYVhEREREXFbCsMiIiIi4rYUhkVERETEbSkMi4iIiIjbUhgWEREREbelMCwiIiIibkthWERERETclsKwiIiIiLgthWERERERcVsKwyIiIiLithSGRURERMRtKQyLiIiIiNtSGBYRERERt6UwLCIiIiJuS2FYRERERNyWwrCIiIiIuC2FYRERERFxWwrDIiIiIuK2FIZFRERExG0pDIuIiIiI21IYFhERERG3pTAsIiIiIm5LYVhERERE3JbCsIiIiIi4LYVhEREREXFbCsMiIiIi4rYUhkVERETEbXW7MGyz2UhOTubqq68mNDSUq6++muTkZGpra402DoeD1atXM3ToUAYMGMCNN97IwYMHna5TVVXFo48+SnR0NGFhYcyZM4e8vDynNlarlYULFxIZGUlkZCQLFy7EarV2xmOKiIiISDfQ7cLwL37xC1577TWee+45UlNTefbZZ3n11Vd58cUXjTZr165l3bp1PPfcc3z00UdYLBZmzJhBaWmp0WbFihVs376djRs3smPHDkpLS0lKSsJmsxltFixYQHp6Olu2bGHr1q2kp6dz//33d+rzioiIiEjX8ezqG7hQamoq06dPJzExEYCoqCgSExP54osvgLpR4fXr1/Pwww9z6623ArB+/Xri4uLYunUr8+fPp6SkhDfffJN169YxadIkADZs2MCIESP4+OOPSUhIICMjgw8//JCUlBTGjBkDwEsvvURiYiKZmZnExcV1wdOLiIiISGfqdiPDY8eO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w+LFi3nhhReIi4sjNjaW559/Hj8/P2bNmgVAQEAAc+fOZdWqVVgsFoKCgli5ciXDhw9n4sSJAMTHxzNlyhSWLl3K2rVrcTgcLF26lGnTpulHLyIiIiJuotuF4e985zu89dZb/PSnP+XnP/854eHh/OQnP2HBggVGm4ceeoiKigoeffRRrFYr1157Le+++y59+/Y12jzzzDOYzWbmz59PZWUl48eP55VXXsFsNhttXn31VZYvX87MmTMBSExMZM2aNZ33sCIiIiLSpUxWq9XRejPpaF1dPC7tR33Zs6g/ew71Zc+hvuxZuro/u13NsIiIiIhIZ1EYFhERERG3pTAsIiIiIm5LYVhERERE3JbCsIiIiIi4LYVhEREREXFbCsMiIiIi4rYUhkVERETEbSkMi4iIiIjbUhgWEREREbelMCwiIiIibkthWERERETclsKwiIiIiLgthWERERERcVsKwyIiIiLithSGRURERMRtmaxWq6Orb0JEREREpCtoZFhERERE3JbCsIiIiIi4LYVhEREREXFbCsMiIiIi4rYUhkVERETEbSkMt9GePXuYM2cOw4YNIzAwkLfeesvpvMPhYPXq1QwdOpQBAwZw4403cvDgQac2VVVVPProo0RHRxMWFsacOXPIy8tzamO1Wlm4cCGRkZFERkaycOFCrFarU5tjx46RlJREWFgY0dHRPPbYY1RXV3fIc/dErfXltm3bmDlzJjExMQQGBrJ79+5G11Bfdg8t9WVNTQ1PPfUU48aNIywsjPj4eBYsWMCxY8ecrqG+7D5a+7uZnJzM9773PcLCwoiKiuKWW25h3759Tm3Un91Da33Z0EMPPURgYCAvv/yy03H1ZffQWl8uXryYwMBAp68pU6Y4telufakw3Ebl5eVceeWVPPvss/j6+jY6v3btWtatW8dzzz3HRx99hMViYcaMGZSWlhptVqxYwfbt29m4cSM7duygtLSUpKQkbDab0WbBggWkp6ezZcsWtm7dSnp6Ovfff79x3mazkZSURFlZGTt27GDjxo1s27aNlStXduwH0IO01pdnz55l9OjR/OxnP2v2GurL7qGlvjx79iz79+9n2bJlfPLJJ/zhD38gLy+PWbNmUVtba7RTX3Yfrf3djIuL4/nnn+ef//wnKSkpREVFMWvWLAoKCow26s/uobW+rPf+++/z73//m4EDBzY6p77sHlzpy4kTJ5KRkWF8bdmyxel8d+tLrTPcDgYNGsSaNWu48847gbpR4aFDh3LfffexbNkyACoqKoiLi+N///d/mT9/PiUlJcTGxrJu3Tpmz54NQG5uLiNGjGDr1q0kJCSQkZHBmDFjSElJYezYsQDs3buXxMREPv/8c+Li4vj73//O7NmzOXDgAOHh4QBs3ryZJUuWkJmZib+/fxd8IpevC/uyoaKiImJiYti+fTs33HCDcVx92T211Jf1vvnmG8aOHcuePXsYPny4+rIbc6U/z5w5Q2RkJO+88w4JCQnqz26qub48evQo06ZN47333mPWrFksXLiQBx98END32e6qqb5cvHgxp0+fZvPmzU2+pjv2pUaGO8CRI0fIz89n8uTJxjFfX1/GjRtn/AgvLS2Nmpoapzbh4eHEx8cbbVJTU+nTpw9jxowx2owdOxY/Pz+nNvHx8cYfBICEhASqqqpIS0vryMeUc9SXl6/6n9QEBgYC6svLWXV1NZs2bcLf358RI0YA6s/LSW1tLQsWLGDZsmXEx8c3Oq++vLzs3buX2NhYrr32WpYsWcKpU6eMc92xLz3b8pDSsvz8fAAsFovTcYvFwokTJwAoKCjAbDYTHBzcqE39j/gKCgoIDg7GZDIZ500mE/3793dqc+H7BAcHYzabnX5UKB1HfXl5qq6u5oknnmD69OkMGjQIUF9ejlJSUrj33ns5e/YsAwYM4M9//jMhISGA+vNysnr1aoKCgrj33nubPK++vHxMmTKFm2++maioKI4ePUpycjK33HILH3/8Md7e3t2yLxWGO1DDToS68okLj13owjZNtXelTUvHpXOoL7uv2tpaFi5cSElJCW+//Xar7dWX3dcNN9zA7t27KSoqYtOmTdxzzz38/e9/Z8CAAc2+Rv3ZvXz66af84Q9/aHJycmvUl93PbbfdZvx6+PDhjBo1ihEjRrBz505uueWWZl/XlX2pMokOEBoaCtDoXyaFhYXGv2JCQkKw2WwUFRW12KawsBCH43xZt8PhoKioyKnNhe9TVFSEzWZr9C8m6Rjqy8tLbW0t9957L1999RXvv/8+/fr1M86pLy8/fn5+REdH873vfY9f/epXeHl58cYbbwDqz8vF7t27OXnyJPHx8QQHBxMcHMyxY8d46qmnuPLKKwH15eVs4MCBhIWFkZ2dDXTPvlQY7gBRUVGEhoaya9cu41hlZSV79+416l9GjRqFl5eXU5u8vDyjaBxg9OjRlJWVkZqaarRJTU2lvLzcqU1GRobTkiS7du3C29ubUaNGdeRjyjnqy8tHTU0N8+fP56uvvmL79u3GP1zrqS8vf3a73VhaSf15eViwYAF79uxh9+7dxtfAgQN54IEHeP/99wH15eWsqKiIEydOGN9vu2NfqkyijcrKyox/5djtdnJzc0lPTycoKIiIiAgWL17MCy+8QFxcHLGxsTz//PP4+fkxa9YsAAICApg7dy6rVq3CYrEQFBTEypUrGT58OBMnTgQgPj6eKVOmsHTpUtauXYvD4WDp0qVMmzaNuLg4ACZPnsywYcNYtGgRycnJFBcXs2rVKubNm6dZsS5qrS+Li4s5duwYJSUlAOTk5BAQEEBoaCihoaHqy26kpb4cOHAgd999N19++SVvv/02JpPJqO/39/fH19dXfdnNtNSfAQEB/PKXv2T69OmEhoZSVFTEq6++yvHjx/nhD38I6Ptsd9La99kLR/I8PT0JDQ01+kB92X201JdBQUE8++yz3HLLLYSGhnL06FF++tOfYrFYuOmmm4Du2ZdaWq2Ndu/ezc0339zo+B133MH69etxOBw8++yzvP7661itVq699lqef/5540c+UDda/OSTT7J161YqKysZP348L7zwgtPMyOLiYpYvX87f/vY3ABITE1mzZo0x+x3qFp1etmwZ//d//4ePjw+zZs0iOTkZb2/vjvsAepDW+vKtt97iv//7vxudX758OStWrADUl91FS335+OOPM3LkyCZft27dOmNpIPVl99FSf77wwgvcd999fPHFF5w+fZp+/fpxzTXX8Mgjj/Dd737XaKv+7B5a+z57oREjRjgtrQbqy+6ipb588cUXufPOO0lPT6ekpITQ0FBuuOEGVq5c6dRP3a0vFYZFRERExG2pZlhERERE3JbCsIiIiIi4LYVhEREREXFbCsMiIiIi4rYUhkVERETEbSkMi4iIiIjbUhgWEREREbelHehERMQlaWlp7N27lzNnznD11VeTmJjY5DERkcuJwrCISCfKycnhj3/8Y4ttbrrpJkaMGNFJd+SaoqIidu7cyQ9/+EPCwsLw9vZu8lh7+Oijjzh16hRJSUntcj0RkZYoDIuIdKLw8HCnLWY3bdrEsGHDGD16tHHM19e30evsdjseHl1X2ZaZmYnFYiE+Pr7FY+3h+PHjREZGtus1RUSao+2YRUS6SGVlJb/4xS+YMWOGU6A8c+YM69at49ZbbyUtLY28vDymTp2Kv78/W7Zs4ZFHHsFsNgNQUlLCr3/9axYuXEhwcLDx+k8++YSsrCwcDgdRUVFMnTqVPn36NHsvLb1mw4YNnD592mh7xRVXUFhY2OjYbbfd5tJ7nz17lv/7v/8jMzOTyspKgoKCSEhIIDIykhdeeAGbzWa07d+/P/fdd9+lf9giIs3QyLCISBc5efIkDoeDAQMGOB0vKCgA4LPPPmPChAn069cPb29v0tPT6d+/vxGE69t6eXnRr18/AKxWK2+88QZXX301d911Fzabjb///e/s3LmT2267rcn7aO01d911F7///e+56qqrGDlyJF5eXtTW1jY65sp7nzlzhjfeeIOBAwcyY8YM/Pz8OHbsGL169cLDw4O5c+fy+uuvc/fdd+Pv7+/0rCIiHUFhWESki+Tn59O7d28CAgIaHff09GTGjBkEBQU5HQ8JCWnUNiQkBJPJBEBKSgojR45kwoQJRpvvf//7vPvuu83eR2uv8fb2xmq1Eh4ebozwms3mRsf+/Oc/t/reKSkphISEMHPmTOOeGz5jeXk53t7eDBw40DgvItKRFIZFRLrIyZMnCQ0NbXS8oKCAmJgYp5BYf3zkyJGNjlksFqCuZCInJ4fc3Fz+9a9/GW3sdjteXl5N3oMrrzl16hR2u93pXi885sp1SkpKyMrK4p577mk26J48eRKLxaIgLCKdRmFYRKSL5Ofnc8UVVzQ6XlBQwLXXXut0rKamhtOnTzcaGT5+/Djjxo0zXuft7c38+fMbXbO5yXeuvCY/P5+AgAB8fHyc7r3hMVev4+Hh0ags5ML7aem8iEh7UxgWEekC1dXVnD59utHIcHV1NcXFxY2OW61W7Ha7URsMcPToUUpLS42A7OHhQU1NDX5+fvTq1cul+3DlNQUFBY3u58JjrlzHbDZjt9uprq5udhm2goICoqOjXbp3EZH2oB3oRES6QGuT5y4Mn76+vphMJk6ePAnAiRMn+Nvf/obJZDLCcFhYGD4+Pmzfvp2TJ09SXFxMTk4OO3fuxOFoeuEgV17TUq3yxVxn4MCB+Pr6kpKSwqlTpygqKiItLY38/HzjOna7ndOnT1NaWkplZeVFf64iIhdLI8MiIl0gPz8fHx8fAgMDnY6fOnWKfv36NRpd7dOnDxMmTGDHjh188MEHREREMGzYML7++mujra+vL7Nnz2bXrl28/fbb2O12AgMDGTZsWLM1uK29xuFwcOrUKcaMGWO8pqljrrx37969ue2229i1axdvvPGGUTIRGxtrXGf8+PF8/PHHpKamMmrUKKZPn35Jn7OISGu0zrCIiIiIuC2VSYiIiIiI21IYFhERERG3pTAsIiIiIm5LYVhERERE3JbCsIiIiIi4LYVhEREREXFbCsMiIiIi4rYUhkVERETEbSkMi4iIiIjb+v8B+uaDoMnIfZgAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 720x504 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_effect(\n",
    "    effect_true=effect_true,\n",
    "    effect_pred=effect_pred,\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Matching in the wild - simulation"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Probability of finding at least one match per row"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|████████████████████████████████████████████████████████████████████████████████| 100/100 [00:03<00:00, 26.97it/s]\n",
      "100%|████████████████████████████████████████████████████████████████████████████████| 100/100 [00:03<00:00, 25.04it/s]\n",
      "100%|████████████████████████████████████████████████████████████████████████████████| 100/100 [00:04<00:00, 23.94it/s]\n",
      "100%|████████████████████████████████████████████████████████████████████████████████| 100/100 [00:04<00:00, 22.91it/s]\n",
      "100%|████████████████████████████████████████████████████████████████████████████████| 100/100 [00:04<00:00, 22.25it/s]\n",
      "100%|████████████████████████████████████████████████████████████████████████████████| 100/100 [00:04<00:00, 20.84it/s]\n",
      "100%|████████████████████████████████████████████████████████████████████████████████| 100/100 [00:05<00:00, 19.32it/s]\n",
      "100%|████████████████████████████████████████████████████████████████████████████████| 100/100 [00:05<00:00, 18.78it/s]\n",
      "100%|████████████████████████████████████████████████████████████████████████████████| 100/100 [00:05<00:00, 18.11it/s]\n",
      "100%|████████████████████████████████████████████████████████████████████████████████| 100/100 [00:05<00:00, 18.06it/s]\n",
      "100%|████████████████████████████████████████████████████████████████████████████████| 100/100 [00:05<00:00, 17.25it/s]\n",
      "100%|████████████████████████████████████████████████████████████████████████████████| 100/100 [00:05<00:00, 16.70it/s]\n",
      "100%|████████████████████████████████████████████████████████████████████████████████| 100/100 [00:06<00:00, 16.13it/s]\n",
      "100%|████████████████████████████████████████████████████████████████████████████████| 100/100 [00:06<00:00, 15.72it/s]\n",
      "100%|████████████████████████████████████████████████████████████████████████████████| 100/100 [00:06<00:00, 15.02it/s]\n",
      "100%|████████████████████████████████████████████████████████████████████████████████| 100/100 [00:06<00:00, 14.75it/s]\n",
      "100%|████████████████████████████████████████████████████████████████████████████████| 100/100 [00:06<00:00, 14.53it/s]\n"
     ]
    }
   ],
   "source": [
    "results_per_dimension = {}\n",
    "\n",
    "for d in range(2, 19):\n",
    "    results = []\n",
    "    \n",
    "    N_SAMPLES = 1000\n",
    "    DIM_X = d\n",
    "\n",
    "    for i in tqdm(range(100)):\n",
    "\n",
    "        X = np.random.binomial(n=1, p=.5, size=(N_SAMPLES, DIM_X))\n",
    "\n",
    "        local_results = []\n",
    "\n",
    "        for row in range(X.shape[0]):\n",
    "            # Did we find at least 1 match for `row`?\n",
    "            success = (np.where(np.where(X == X[row], 1, 0).sum(axis=1) == DIM_X, 1, 0).sum() - 1) > 0\n",
    "            local_results.append(success)\n",
    "\n",
    "        results.append(np.array(local_results).mean())\n",
    "        \n",
    "    results_per_dimension[d] = results"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Compute statistics\n",
    "mean_p = pd.DataFrame(results_per_dimension).mean(axis=0).values\n",
    "sd_p = pd.DataFrame(results_per_dimension).std(axis=0).values"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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6f14+/Ot16C5NfDVRvr//MFyWnCDN52rYqbt9Gg1akJMKBRix44dPUZQrrzySt54441eX7NlyxYWL16M19vRv++qq67iu9/9LocPH2by5MlDWbKIiIiIDLH+RnMy3EGmpnVdX9Ieclr/8R+JtU6/omMKVufpWLHWn20LU2J0CkGdAlE8nDaY6DK3RIjGTKjpLeD0F4BO91z34y0xsLVP8hu9Rk2IqaysJBKJ4PP5uhz3+XwEAoFeXxMIBMjNze1xfttzfYWY4uLiMy/4DI2GGsYjXdfE0zVNPF3ToaHrmni6pkND1zWxLAsOlpz+mlp0LIzvS1ugiWARjUE4ZtECNMUsoq33o1it63isLudGW5+LdV6d37rex4wKxbC1PtW+fuUMR4cswNt6G9DJ/V0ATJhrAZqjFiX7K/HaRjbMzJgxo8/nRk2IadN9ClgsFjvttLDezu/teGenuyDDobi4eMRrGI90XRNP1zTxdE2Hhq5r4umaDg1d18QbTdc02m3Ep/uoULj1HDr97C0mxLodjHX72duxXs/p4zNOd04MOHTkKDOnT8fTT+gZSaMmxGRlZWG323uMulRUVPQYnWnj9/t7PR/o8zUiIiIiIkOhvS3ySBdyhtLcwVEdYKDHNj0jx+VyMX/+fNasWdPl+Jo1a7jkkkt6fc3FF1/M5s2bCQaDXc6fNGkSRUVFQ1qviIiIiIiMjFETYgDuuecefvOb3/CrX/2Kffv28dWvfpXS0lLuvPNOAB544AFuuOGG9vP//u//Hq/Xy+c+9zneeecdXnjhBX784x/zuc99Tp3JRERERETGqVE12nXzzTdz6tQpHnzwQcrKypgzZw7PPPNM+y6spaWlHDx4sP389PR0nn/+eb785S9zxRVXkJGRwT333MPnP//5kfojiIiIiIjIEBtVIQbg7rvv5u677+71uccee6zHsblz5/Lyyy8PdVkiIiIiIjJKjKrpZCIiIiIiIv1RiBERERERkTFFIUZERERERMYUhRgRERERERlTFGJERERERGRMUYgREREREZExRSFGRERERETGFIUYEREREREZUxRiRERERERkTFGIERERERGRMUUhRv5/e/cf1OR9xwH8HRIxgEoCIiCCrIAoIIiI/LIiVhTHMVrxrva6qzrRdZ1urtNpXTtP112VWdue51mt9epuKszJnLJWXc8f/BSZrQIG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\n",
      "text/plain": [
       "<Figure size 864x576 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plot\n",
    "plt.figure(figsize=(12, 8))\n",
    "plt.fill_between(range(2, 19), mean_p - sd_p*2, mean_p + sd_p*2, color=COLORS[0], alpha=.2, label='$+/-2SD$')\n",
    "plt.plot(range(2, 19), mean_p, color=COLORS[0], lw=2, label='$\\mu$')\n",
    "plt.legend()\n",
    "plt.xlabel('$Dimensionalty \\ of \\ X$', alpha=.5)\n",
    "plt.ylabel('$Probability \\ of \\ finding \\ at \\ least \\ one \\ match$', alpha=.5)\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python [conda env:causal_book_py38]",
   "language": "python",
   "name": "conda-env-causal_book_py38-py"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.13"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
